Le blog de Fatiha

Une geek de plus !

Tutoriels java sur slideshare

 

Il y a différentes manières d’apprendre le langage java. Un collègue m’a conseillé les présentations powerpoint hébergées sur le site slideshare. Vous trouverez donc ci-dessous quelques unes des présentations que j’ai lues.

La première présentation est en anglais, elle est adaptée aux débutants car elle reprend aussi les principes de la programmation.

 

Cette deuxième présentation en français n’est pas destinée aux programmeurs java, elle concernerait plus les administrateurs système. Le but de cette présentation est de nous apprendre comment optimiser la gestion de la mémoire de la JVM. Vous y trouverez des notions comme le garbage collector, le throughput ou encore heap.

Dans cette troisième présentation dédiée au garbage collector, vous entendrez parler de minor GC, de full GC, de survivor space… Rassurez-vous, même si cette présentation est en anglais, elle vous sera très utile pour comprendre comment le garbage collector fonctionne, comment il gère la mémoire. On y trouve des conseils sur l’allocation mémoire, par exemple, il est préconisé de créer des « petits » objets avec des durées de vie courtes. Le mécanisme de fuite mémoire y est notamment détaillé. Dans cette présentation, vous trouverez aussi des conseils pour bien gérer la mémoire : ne pas forcer le lancement du garbage collector (System.gc()), utiliser le bloc finally dans la programmation java (gestion des fichiers, gestion bases de données), … Elle mentionne quelques outils de base pour le monitoring : jconsole, jstat, jmap, jhat

Je vous laisse, je retourne sur le site slideshare :)

Erreur java : « Exception in thread « main » java.lang.NoClassDefFoundError »

 

Exception in thread « main » java.lang.NoClassDefFoundError

Comment ai-je obtenu cette très belle erreur ? Cela s’est produit quand j’ai essayé de lancer un programme java avec son extension .class :

erreur de débutante

Pour corriger cette erreur, il suffit de relancer le programme en supprimant l’extension .class. C’est une erreur de débutante, je l’avoue. Ce que je peux dire pour ma défense c’est que j’ai l’habitude de travailler avec des langages interprétés qui n’ont pas besoin de compilation. Il y a quelques années j’avais déjà essayé de coder en java, puis, je m’étais rabattue sur le php.

Source : commentcamarche.net

POO en python, un exemple avec les fonctions search et compile

 

J’ai essayé de prendre en compte les remarques et conseils que j’ai eus via ce blog et via twitter. Un grand merci à : @Abd_fr, @Niyyou et @kiki67100.  Pour coder cette classe, j’ai utilisé l’IDE PyCharm, IDE que m’a conseillé @Abd_fr. Je peux dire qu’il y a un avant et après PyCharm.

J’ai essayé de partir de mon précédent article et de perfectionner un peu les choses. Comme je le dis souvent, ce n’est encore qu’un début. Passons à la pratique.

La classe ci-dessous contient deux méthodes :

  • une méthode qui affiche les arguments passés lors de l’instanciation de l’objet personne => print_args
  • une méthode qui recherche une ville précise dans l’adresse donnée lors de l’instanciation de l’objet personne
Vous remarquerez que j’ai importé le module re. C’est indispensable pour pouvoir utiliser les méthodes compile et search. J’ai déjà parlé de la méthode search dans un précédent article. 
import re
__author__ = 'FATIHA'
class MyIdentityClass (object):
    def __init__(self,_firstname,_lastname,_address):
        self._firstname=_firstname
        self._lastname=_lastname
        self._address=_address

    def print_args(self):
        print self._firstname
        print self._lastname
        print self._address

    def search_city (self,_city):
        pattern = re.compile(_city)
        if pattern.search(self._address):
            print "Yes"
        else:
            print "No"

personne=MyIdentityClass("michel","dupont","70 avenue Mozart, 75016 Paris")
personne.print_args()
personne.search_city("Paris")
personne.search_city("Londres")

Le résultat est le suivant :

michel
dupont
70 avenue Mozart, 75016 Paris
Yes
No

Programmation orientée objet en python : ma première classe

 

Cet article fait suite à la série d’articles que je rédige sur le langage python.

Je ne vais pas revenir ce qu’est la programmation orientée objet, vous pouvez trouver énormément de définitions et de cours sur le sujet sur le net. Arrêtons-nous sur ce qu’est une classe et allons droit au but, comment créer uune classe en python et comment lui associer des objets et des méthodes. « Une classe crée un nouveau type où les objets sont des instances de la classe ». Cette définition est issue du site swaroopch.com. Elle est claire et précise. Nous savons maintenant ce qu’est une classe et ce qu’est un objet. Le troisième terme à comprendre est le terme méthode : « Les objets peuvent aussi avoir des fonctionnalités en utilisant des fonctions qui appartiennent à une classe. » Cette définition de la méthode est encore issue du site swaroopch.com.

Passons tout de suite à un cas pratique issu du site voidspace.org.uk :

class maPremiereClasse(object):
    """Class docstring."""

    def __init__(self, arg1, arg2):
        """Method docstring."""
        self.arg1 = arg1
        self.arg2 = arg2

    def printargs(self):
        """Method docstring."""
        print self.arg1
        print self.arg2

# l'instanciation de l'objet appelle la methode init
instance=maPremiereClasse("mon argument 1","mon argument 2")

print type(instance)

#appelle la methode printargs
instance.printargs()

Ce qui donne :

Au niveau de cette exemple, deux méthodes sont définies : la méthode __init__ et la méthode printargs. La méthode __init__ est optionnelle, elle peut ne pas figurer dans une classe définie par un utilisateur. Mais quand elle est définie, elle doit avoir comme premier argument self. Qu’est-ce que self ? Quand est-ce qu’il est utilisé et comment l’utiliser ?

Ce qu’on doit savoir c’est que le paramètre self est toujours passé en paramètre des méthodes de l’objet. Même si on ne sait pas encore à quoi il sert, il faut l’utiliser. Nous voyons d’ailleurs dans l’exemple ci-dessus qu’il est passé en paramètre de printargs et de la méthode __init__. Sur swaroopch.com, self est expliqué ainsi : « cette variable particulière fait référence à l’objet lui-même, et par convention on lui donne le nom de self. « 

Pour vérifier que j’ai bien compris les bases de la programmation orientée objet en python, je vais jouer au quizz du site du zéro. Cool, j’ai obtenu 20/20. C’est un bon début, cela signifie que je suis sur la bonne voie :)

Sources :