Statisticile de astăzi

Exerciții completate
-
Caractere tastate Cuvinte scrise
-
Timp de exersare
-

Statistici generale

Exerciții completate
-
Caractere tastate Cuvinte scrise
-
Timp de exersare
-

Lecție de dactilografiere: Programare în limbajul Java

Dactilografia este importantă în programare. Tastarea rapidă vă ajută să scrieți mai eficient cod în limbajul de programare Java.

Să aflăm mai multe despre limbajul Java și despre dactilografie atunci când programăm în Java.

Programare în Java și dactilografie

Java este un limbaj de programare puternic tipizat și orientat pe obiecte, care cere precizie și consecvență. Spre deosebire de JavaScript, care este mai permisiv, sau de Python, unde indentarea determină structura, Java se bazează pe o sintaxă explicită: pachete, clase, importuri, modificatori de vizibilitate, generics și excepții verificate (checked exceptions). De aceea, tastarea oarbă (touch typing) în Java nu este doar o modalitate de a scrie mai repede, ci o abilitate esențială. Ea ajută la reducerea greșelilor în nume lungi de identificatori, închiderea corectă a generics imbricate și plasarea precisă a acoladelor și semnelor punct și virgulă. Practica de tastare oarbă și tastare rapidă (fast typing) în Java permite concentrare mai mare asupra logicii și designului codului.

Java idiomatic și convenții

Notă: "Java idiomatic" engl.: idiomatic Java desemnează stilul considerat natural și corect de comunitate. În Python există termenul "pythonic", iar în Java accentul cade pe convenții clare: numele pachetelor sunt scrise cu litere mici, separate prin puncte (com.example.billing), clasele și interfețele folosesc UpperCamelCase, metodele și atributele lowerCamelCase, iar constantele UPPER_SNAKE_CASE. Blocurile de cod sunt mereu delimitate de acolade, chiar și atunci când conțin o singură instrucțiune. API-urile publice sunt documentate de obicei cu Javadoc (/** ... */). Tastarea oarbă în Java sprijină respectarea acestor convenții fără întreruperi.

Pachete, importuri și nume complet calificate

Un nume complet calificat engl.: fully qualified name este format din pachet plus numele clasei. Dacă fișierul aparține unui pachet cu nume, declarația package precedă instrucțiunile import. Fără această declarație, fișierul aparține unui pachet fără nume. Lipsa unui punct sau o greșeală de tastare poate provoca o eroare de sintaxă ori de rezolvare a numelui, precum "cannot find symbol". Tastarea rapidă în Java face scrierea mai fluentă, iar tastarea oarbă reduce erorile.

package com.example.payments.service;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

public class InvoiceService {
    // ...
}

Tipuri, modificatori și generics

Notă: "generics" engl.: generics permit definirea de structuri și metode generice, sigure la compilare. Modificatorii public și private controlează accesul la elementele codului. Pentru variabile, final împiedică o nouă atribuire, dar nu face obiectul la care se referă variabila imutabil. În tipuri generice precum List<Order>, simbolurile < și > trebuie împerecheate corect. Variantele imbricate devin complexe: Map<String, List<Integer>>. Tastarea oarbă în Java face aceste modele familiare, iar tastarea rapidă ajută la corecturi rapide.

import java.util.*;

public class Repository<T> {
    private final Map<String, T> store = new HashMap<>();

    public void save(String id, T value) { store.put(id, value); }
    public Optional<T> find(String id) { return Optional.ofNullable(store.get(id)); }
}

Constructori, overloading și records

Notă: "overloading" engl.: overloading înseamnă declararea mai multor metode cu același nume, dar cu parametri diferiți. Un "record" engl.: record este o sintaxă concisă pentru tipuri imutabile cu metode generate automat. Câmpurile componentelor unui record sunt final, dar obiectele la care se referă pot rămâne modificabile. Constructorii definesc regulile de inițializare. Tastarea oarbă în Java ajută la plasarea corectă a parantezelor și virgulelor, iar tastarea rapidă accelerează scrierea.

// Clasă cu constructor
public class Mail {
    private final String to;
    private final String subject;
    private final String body;

    public Mail(String to, String subject, String body) {
        this.to = to;
        this.subject = subject;
        this.body = body;
    }
}

// Record pentru tip imutabil
public record Message(String to, String subject, String body) { }

Checked exceptions și try-with-resources

Pentru excepțiile verificate (engl.: checked exceptions), compilatorul verifică dacă sunt tratate în cod sau declarate cu throws. Excepțiile propriu-zise apar în timpul execuției. "try-with-resources" engl.: try-with-resources închide automat resursele. Aceste structuri cer precizie la tastare. Tastarea oarbă în Java face tiparul o obișnuință.

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Loader {
    public static String firstLine(String path) throws IOException {
        try (BufferedReader br = new BufferedReader(new FileReader(path))) {
            return br.readLine();
        }
    }
}

Metode, overloading și varargs

Notă: pentru că Java nu are valori implicite pentru parametri, se folosește overloading engl.: overloading. "varargs" engl.: varargs permit trimiterea unui număr variabil de argumente folosind .... Sintaxa implică multe simboluri. Tastarea oarbă în Java reduce erorile, iar tastarea rapidă păstrează ritmul.

public class Logger {
    public void log(String level, String msg) { System.out.println(level + ": " + msg); }
    public void log(String msg) { log("INFO", msg); }
    public void logf(String fmt, Object... args) { System.out.println(fmt.formatted(args)); }
}

Structuri de control și switch modern

Notă: "switch expressions" engl.: switch expressions folosesc săgeți (->) și pot întoarce valori. Ele reduc repetițiile, dar cer atenție. Tastarea oarbă în Java le face naturale, iar tastarea rapidă ajută la viteză.

public class Classifier {
    public static String label(int score) {
        return switch (score / 10) {
            case 10, 9 -> "A";
            case 8 -> "B";
            case 7 -> "C";
            case 6 -> "D";
            default -> "F";
        };
    }
}

Lambdas, method references și streams

Notă: o "lambda" engl.: lambda este o funcție anonimă, ca (x) -> x + 1. O "method reference" engl.: method reference are forma Tip::metodă. "streams" engl.: streams permit operații în lanț. Sintaxa lor conține multe simboluri. Tastarea oarbă în Java crește precizia, iar tastarea rapidă menține eficiența.

import java.util.List;

class Discounts {
    public static void main(String[] args) {
        List<Integer> prices = List.of(100, 200, 350, 400);
        int total = prices.stream()
                .map(p -> (int)(p * 0.9))
                .filter(p -> p >= 150)
                .reduce(0, Integer::sum);
        System.out.println(total);
    }
}

Egalitate, ordonare și contracts

Notă: "contracts" engl.: contracts sunt reguli pentru metode precum equals, hashCode, toString și compareTo. Ele implică repetiție și precizie. Tastarea oarbă în Java face scrierea mai consecventă, iar tastarea rapidă o accelerează.

public final class Point implements Comparable<Point> {
    private final int x, y;
    public Point(int x, int y) { this.x = x; this.y = y; }
    @Override public int compareTo(Point o) {
        int cx = Integer.compare(this.x, o.x);
        return (cx != 0) ? cx : Integer.compare(this.y, o.y);
    }
}

Strings, text blocks și formatare

Notă: "text blocks" engl.: text blocks sunt șiruri pe mai multe linii delimitate de """. Formatarea se face cu String#formatted sau String.format. Tastarea oarbă în Java ajută la folosirea corectă a ghilimelelor și caracterelor speciale.

class Reporter {
    public static void main(String[] args) {
        String report = """
                Orders Report
                -------------
                Total: %d
                """.formatted(42);
        System.out.println(report);
    }
}

Pattern matching cu instanceof

Notă: "pattern matching" engl.: pattern matching permite declararea de variabile direct într-un test instanceof. Acest lucru reduce boilerplate, dar cere precizie. Tastarea oarbă în Java face acest tipar mai natural.

static int len(Object o) {
    if (o instanceof String s) { return s.length(); }
    if (o instanceof java.util.List<?> list) { return list.size(); }
    return -1;
}

Module și vizibilitate

Notă: "Java Platform Module System" engl.: JPMS folosește fișierul module-info.java. Modificatorii de vizibilitate (public, protected, package-private, private) sunt esențiali. Tastarea oarbă în Java ajută la folosirea lor consecventă.

module com.example.billing {
    exports com.example.billing.api;
    requires java.sql;
}

Concurență și sintaxă

Notă: "concurrency" engl.: concurrency se referă la thread-uri, thread pools și CompletableFuture. Sintaxa folosește multe simboluri (<>, ->, ::). Tastarea oarbă în Java reduce erorile, iar tastarea rapidă menține productivitatea.

import java.util.concurrent.CompletableFuture;

class AsyncDemo {
    public static void main(String[] args) {
        CompletableFuture<String> f =
            CompletableFuture.supplyAsync(() -> "data")
                             .thenApply(String::toUpperCase)
                             .exceptionally(ex -> "fallback");
        System.out.println(f.join());
    }
}

Anotații în Java

Notă: "annotations" engl.: annotations sunt metadate marcate cu @. Fără framework-uri, cele mai comune sunt @Override, @Deprecated și @SuppressWarnings. Tastarea oarbă în Java face scrierea acestora mai rapidă și mai precisă.

public class User {
    private final String name;
    public User(String name) { this.name = java.util.Objects.requireNonNull(name); }

    @Override
    public String toString() { return "User{name='" + name + "'}"; }
}

Exerciții de tastare și importanță

Sintaxa Java include multe simboluri: acolade pentru blocuri, paranteze pentru apeluri, paranteze unghiulare pentru generics, săgeți și :: pentru elemente funcționale, virgule pentru parametri și punct și virgulă pentru terminarea instrucțiunilor. Prin tastare oarbă în Java, aceste modele devin automate, iar tastarea rapidă menține ritmul în proiecte mari.

Concluzie

Java se caracterizează prin tipuri explicite, structură disciplinată și convenții solide. Sintaxa sa necesită atenție: generics, excepții, structuri de control și elemente funcționale. Tastarea oarbă în Java reduce erorile, iar tastarea rapidă în Java crește productivitatea. Aceste abilități ușurează introducerea precisă a codului Java. Pentru a verifica dacă programul funcționează corect, trebuie și să îl compilezi și să îl testezi.

Următorul text
Următoarea lecție
Sarcină Înapoi la test
java
Grafic Ascunde