Language java


    Les achitecture type  
  language java    
     type et déclaration
   Valeurs     
   definition    
   exemples/description    
public class "nom du programme" annonce le fichier permet de nommer le fichier et de le retrouver lors de l'instruction.
int ...
Char ...
déclaration des variables permet de définir de quel façon le programme va pouvoir le différentes vaibles utilisées dans le programme.
public static void main (string[] args)
{
début type du programme main est le début du programme
{
}
instructions coeur du programme
} fin chlore le programme ;)
sudo apt-get install libmysql-java export CLASSPATH=$CLASSPATH:/usr/share/java/mysql-connector-java.jar importer le driver connexion java ;)

   les "type de constantes" 
  Constantes Variables;     
     type et déclaration
   Valeurs     
   definition    
   exemples/description    
Int I,J; N (réel) 235 à -235 entier
Double a, c; Réel 235 à -235 décimaux
Booléen b; boléen Vraix-Faux 0-1/oui-non/Vraix-Faux
char c; caractère alphabet [a-z] vérifier les caractère numérique
String s; Chaine "bonjour" et "[...]" permet de calculer des enchainements de variables

   les Operateurs
   Language Java    
   grandeur  
   traduction    
   definition    
   exemples/description    
+ - * / / % Arithmétiques + - * / div modulo la division / est entière si les opérandes sont des entiers, sinon c'esy une division réelle
&& || ! Logiques et ou non ---------------------------
== < > <= >= != relationels = < > « » ‡ ---------------------------
s1.equals(s2) cas particulier égalité entre deux chaines fonctino prédéfinie pour les chaines

   les variables 
   Language Java    
   grandeur  
   traduction    
   definition    
   exemples/description    
double a,c: réel égalité entre deux chaines fonctino prédéfinie pour les chaines

   entrée et sorties
  Language Java     
  type et déclaration
  definition    
  exemples/description    
System.out.println(""); écrire "" affiche un message à l'utilisateur
System.out.println("valeur de la variable"); écrire "valeur de la variable a=" +a ressort une donnée injecté au programme

  instruction conditionelles 
  Language Java     
  type et déclaration
  definition    
  exemples/description    
if [conditions]
{

instruction

}
si cette condition permet de rentrer une condition.
if [conditions]
{

instruction

}
else
{

instruction

}
si cette ou ces conditions alors permet de rentrer une condition.

  instructions itératives (boucles) 
  Language Java     
  type et déclaration
  definition    
  exemples/description    
for (i=L; i‹=10 ; i=i+1)
{

instruction

}
pour (i allant de 1 à 10pas 1) faire
instruction 1;
instruction 2;
...
finpour
pour une variable allant de n à n+x faire (attention on ne traduit pas le faire...
for (i=L; i‹=10 ; i=i-1)
{

instruction_1;
instruction_2
...

}
pour (i allant de 1 à 10pas 1) faire
instruction 1;
instruction 2;
...
finpour
pour une variable allant de n à n-x faire (attention on ne traduit pas le faire...
While (condition)
{

instruction

}
tant que (conditions) faire
instruction 1;
instruction 2;
...
fintanque
pour une variable tant qu'elle reste vraie ou fausse faire...(attention on ne traduit pas le faire...

  structure
les type d'une classe

static class Liste{
private int valeur;
private Liste suivant;
public Liste(int premier,Liste reste){
valeur= premier;
suivant= reste;
}
public int tete(){
return(valeur);
}
public Liste queue(){
return(suivant);}
}
la visibilité
publicest visible dans tout le programmepublic int A
protectedest visible de la classe ainsi que de ses héritageprotected Point p
privateest visible que de la classes dans laquelle il existeint[] A

: renvoie la quantité totale de mémoire du tas
 Le garbage collector java.lang.ref 
les type de références
Soft Reference
Weak Reference
Hard Reference
Phantom Reference
méthodes pour obtenir des informations basiques sur la mémoire occupée par le tas
totalMemory()
freeMemory()
-XX:+HeapDumpOnOutOfMemoryError

  les exeptions 
RunTimeExeption
try{...}catch(){}permet de capturer une exeption et éviter sa propagation jusqu'au maintry{
division par zero
}catch(NumberFormatExeption nfe){
System.out.println(nfe.getMessage());
return null;}
throw new Exception("division par zero");permet d'encapsuler les exeptions try {
maMéthodeQuiRenvoitPlusieursTypesDException();
}catch (Exception e) {
// En englobe toutes les exceptions dans une exception unique
throw new Exception("Un problème est survenue", e);
}
try{...}finally{...}passe automatiquement par finally (attention aux return/break/continue) qui ducoup ne seront pas éxécutépublic int methode2(){
try{
return 3;
}finally{
return 4;
}
}
printStackTrace()de Throwable fourni l'enssemble des info des méthodes appelés au moment de l'erreur
getCause()permet d'avoir l'erreur d'originine en cas d'erreur en cascade
java.util.loggingpermet de loguer les erreurs dans des fichiers
cree ses propres exeptions
les exceptions et ordres
Objectla classe racine de toutes les classes
   ThrowablegetMessage(), toString(), printStackTrace(), etc.
    Errorerreurs graves, abandon du programme
    Exceptionanomalies récupérables
      RunTimeExceptionerreur à l’exécution
        ArithmeticExceptiondivision par zéro par exemple
        ClassCastExceptionmauvaise conversion de classes (cast)
        IndexOutOfBoundsExceptionen dehors des limites (tableau)
        NullPointerExceptionréférence nulle
        IllegalArgumentException
          NumberFormatExceptionnombre mal formé
      IOExceptionerreurs d’entrées-sorties
        FileNotFoundExceptionfichier inconnu

  la généricité 
public class Duo<T, S> {

//Variable d'instance de type T
private T valeur1;
//Variable d'instance de type S
private S valeur2;
//Constructeur par défaut
public Duo(){
this.valeur1 = null;
this.valeur2 = null;
}
//Constructeur avec paramètres
public Duo(T val1, S val2){
this.valeur1 = val1;
this.valeur2 = val2;
}
//Méthodes d'initialisation des deux valeurs
public void setValeur(T val1, S val2){
this.valeur1 = val1;
this.valeur2 = val2;
}
//Retourne la valeur T
public T getValeur1() { return valeur1;
}
//Définit la valeur T
public void setValeur1(T valeur1) {
this.valeur1 = valeur1; }
//Retourne la valeur S
public S getValeur2() {
return valeur2;
}
//Définit la valeur S
public void setValeur2(S valeur2) {
this.valeur2 = valeur2;
}
}
la classe générique permet de ne pas s'embetter avec les type d'objet, seul problème le clonage n'est pas permis si on change le type Duo<String, Boolean> dual = new Duo<String, Boolean>("toto", true);
System.out.println("Valeur de l'objet dual : val1 = " + dual.getValeur1() + ", val2 = " + dual.getValeur2());
Duo<Double, Character> dual2 = new Duo<Double, Character>(12.2585, 'C');
System.out.println("Valeur de l'objet dual2 : val1 = " + dual2.getValeur1() + ", val2 = " + dual2.getValeur2());

create()
  Swing (graphique)
JLabel affiche un texte statique, ou avec une mise en forme html Label label = new JLabel("Un Jmachin") ;
Jbutton un bouton qui possède un comportement graphique quand on le clique. JButton bouton = new Jbutton("bouton");
JtoggleButton bouton à deux étapes on/off JToggleButton boutonOnOff = new JToggleButton(new ImageIcon("etoile.gif"));
JcheckBox setSelected(true);
JradioButton JRadioButton choixRouge = new JradioButton("rouge");
JcomboBox Liste déroulante pour choisir un item Vector items = new Vector();
items.add("rouge");
items.add("jaune");
items.add("vert");
items.add("gris");
items.add("bleu");
items.add("orange");
items.add("violet");
JComboBox choix = new JcomboBox(items);
choix.setMaximumRowCount(4);
JtextField un texte dynamique JTextField text = new JtextField(5);
JSpinner composant de saisie de valeur numérique avec des boutons +1 et -1 spinner = new JSpinner();
PasswordField composant de saisie de mot de passe password = new JPasswordField(15);
JSlider autre composant de saisie de valeur numérique avec un curseur slider = new Jslider( Jslider.HORIZONTAL, 0, 100, 50);
JProgressBar barre de progression barre = new JProgressBar(JProgressBar.HORIZONTAL, 0, 100);
barre.setValue(33);
JColorChooser composant de choix de couleur choix = new JColorChooser();
TextArea composant de saisie de texte multi-lignestexte = new JTextArea(12,4);
texte.setLineWrap(true);
texte.append("bla bla bla bla bla bla bla bla bla bla");
FileChooser choix d'un fichier dans le système de fichiers choixFichier = new JFileChooser();
JEditorPane
JTextPane
JTable
JTree

 options JButton
setToolTipText survol du curseur setToolTipText("passez le curseur dessus !");
getSize() renvoie la taile
getHeight() renvoie la hauteur
getWidth() renvoie la largeur
setPreferredSize(Dimension) optimise la dimention
setCursor change le curseur setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR))
setOpaque change l’opacité setOpaque(!bouton.isOpaque());bouton.repaint();
setBorder bordure setBorder(BorderFactory.createEmptyBorder());
setVisible(); change la visibilité setVisible(!bouton.isVisible());
setEnabled(); bouton actif/inactif setEnabled(!bouton.isEnabled());
setBackground(); change le cbackground setBackground(Color.black);
setRolloverIcon(); met un icon au survol setRolloverIcon(new ImageIcon("etoile_presque_jaune.gif"));
SetPressedIcon( ); met un icône lors du pressage setPressedIcon( new ImageIcon("etoile_jaune.gif"));

 options JButton
la sourie
mouseDragged
mouseMoved
getSource()dans quel composant ça s'est passé
getActionCommand()Renvoie la chaîne de commande associée à cette action. Cette chaîne permet à un composant "modal" de spécifier l'une de plusieurs commandes, en fonction de son état. Par exemple, un seul bouton peut basculer entre "afficher les détails" et "masquer les détails". L'objet source et l'événement seraient les mêmes dans chaque cas, mais la chaîne de commande identifierait l'action prévue.
setActionCommand()change le nom de la commande de l'ActionEvent
addActionListener()ajoute un "écouteur" au composantbouton1.addActionListener(ecouteur)
removeActionListener()supprime un "écouteur" au composantbouton1.removeActionListener(ecouteur)
addWindowListener
windowDeactivated()
windowDeiconified()
windowIconified()
windowOpened()

 les dessins
la sourie
dessinGraphics g = panel.getGraphics();
g.drawOval();dessine un rond
g.drawRect()dessine un rectangle g.drawRect(30,40,80,110);
g.drawString(); g.drawString("ceci est un long text",10,100);
paintComponent()public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawOval(10,20,50,50);
g.drawRect(30,40,80,110);
g.drawString("ceci est un long text",10,100);
}
setColor();changer la couleur g1.setColor(Color.red);
g1.fillRoundRect(); dessine un rectangle avec des angles arondiesg1.fillRoundRect(30,30,30,60,10,10);
create();clone un composant ainsi on le remodifie Graphics g2 = g1.create();

la sourie
new ThreadSwingDemo80();déclenche un thread
Thread[AWT-EvenQueuethread graphique (demo swingDemo80)
???
les threads
implement Runnable
.start()déclenche l'éxécution du thread
Thread autreTache= new Thread(new Lent());
autreTache.start();
.interrupt()permet d'arreter un thread (attention au boucles infinies)
.join()attend la fin d'éexécution du thread (méthode bloquante)
les veroux
synchronised(variable/instance)permet de mettre un verou unique
CountDownLatch(nombre)syncronisateur de type loquet à décrémentation
countDown()
wait()
notify()
notifyAll()
tryLock()
AtomicNumber()
CyclicBarrier
Semaphore
ReentrantLock
BlookingQueue
ConcurrentLinkedDeque