您好,欢迎访问三七文档
1、Java是一种可以编译跨平台、面向对象的高级计算机语言。2、Java语言的特点:简单、安全、跨平台、面向对象、支持多线程。3、Java的三个技术平台分别是JavaSE、JavaEE、JavaME。4、Java程序的运行环境简称为JDK。5、编译Java程序需要使用javac命令。6、javac.exe和java.exe这两个可执行程序存放在JDK安装目录的bin目录下。7、PATH环境变量用来存储Java的编译和运行工具所在的路径;CLASSPATH环境变量则用来保存Java虚拟机要运行的“.calss”文件。8、.class文件在java.exe文件启动的JVM中运行。9、JRE与JDK之间的区别:a)JRE(JavaRuntimeEnvironment)提供java程序运行所需要的基本条件(如JVM)和许多基础类。b)JDK(JavaDevelopmentKit)是Java程序开发工具包——包含编译工具、解释工具、打包工具等开发工具。10、JVM——Java虚拟机,相当于一个虚拟的操作系统,负责运行javac.exe生成的字节码(二进制)文件。java.exe执行”.class”,就是java.exe启动JVM运行”.class”文件。11、标识符命名规则:a)包名所有字母一律小写。b)类名和接口名每个单词首字母大写。c)常量名所有字母都大写,单词之间用下划线分开。d)变量名和方法名的第一个单词小写,之后的每个单词首字母大写。12、强制类型转换:a)格式:目标类型变量名=(目标类型)值b)int类型转换成byte类型很容易造成精度丢失。因为int类型变量是32位,byte类型只有8位,所以在转换过程中会丢失int类型的高3位字节。c)在用”双字符“型运算符(+=、-=之类的)运算时,强制类型会自动完成,不用程序显示的声明。13、三元运算符:判断条件?表达式1:表达式2;——若条件成立,执行表达式1,否则执行表达式2。14、跳转语句:a)break:i.用于switch语句,终止某case并跳出switch结构。ii.用于循环语句,跳出循环语句,执行后面的程序。b)continue——只用于循环语句中:终止本次循环,执行下一次循环。15、方法重载:a)2个条件:方法名相同、参数个数或参数类型不同。b)与返回值类型无关。16、数组:a)定义数组:i.类型[]数组名=new类型[数组长度]//这种定义方式只指定了长度,元素的初值由系统自动赋0。(动态初始化)ii.类型[]数组名=new类型[]{元素,元素,......}iii.类型[]数组名={元素,元素,......}//这2种称为静态初始化。17、冒泡排序:a)若有n个元素,则进行n-1轮排序(n-1次外循环)b)第1轮排序,元素之间进行n-1次比较;第2轮排序进行n-2次排序......最后1轮只进行1次比较。c)外循环条件:iarr.lengthd)内循环条件:jarr.length-i-118、二维数组:a)定义方式1:类型[][]变量名=new类型[几行][几列];b)可理解为数组的数组——例arr[0][1]--数组名arr[0],第二个元素[1];c)二维数组的长度由”[几行]“确定!!d)定义方式2:类型[][]变量名=new类型[几行][];//行数确定,列数不确定——每行可以随便赋值。e)定义方式3:类型[][]变量名={{,...,...,...},{},{},......}//这种行数、列数都不确定。大括号内的每个大括号代表一行的元素,每行有多少个元素取决于内大括号中元素的个数。19、面向对象的特点:封装性、继承性、多态性。20、在创建变量后,JVM运行程序时,会自动初始化变量。引用型变量为null。21、垃圾对象——没有变量引用的对象。22、类的封装:将类中的属性私有化。外界访问私有属性时只能通过该属性的getxxx()方法。a)//择Generategetterandsetter--自动生成set和get方法。23、构造方法:实例化对象。a)可以用带参数的构造方法在实例化对象时就给私有属性赋值。b)好的程序员应该为每个类写一个无参构造方法。c)定义构造方法的条件:i.方法名与类名相同。ii.没有返回值的声明。iii.方法中不能有return返回值。24、this关键字a)this指代该类实例化的对象。所以可以用this.xx的方式调用成员。b)在成员方法中使用this关键字,避免参数名与属性名相同。c)用this关键字调用构造方法i.只能在构造方法中用this调用其他构造方法;ii.此时this语句必须位于第1行,并且只能出现一次iii.不能在一个类的两个构造方法中互相调用。25、static关键字a)静态变量:i.用static修饰的变量ii.静态变量被所有实例共享iii.可以使用“类名.变量名”的形式来访问。iv.只能修饰成员变量b)静态方法i.希望在不创建对象的情况下也能条用类中的某个方法,那就用static关键字休息这个方法ii.静态方法只能访问静态成员!//因为非静态成员必须先创建对象才能访问,而静态方法在被调用的时候可以不创建对象——那么就没有非静态成员可供访用。c)静态代码块i.当类被加载时,静态代码会执行一次。而类只会被加载一次,所以静态代码块只会被执行一次。ii.通常会用静态代码块对类的成员变量进行初始化。d)单例模式i.privatestatic类名INSTANCE=new类名();//私有成员变量——自己创建一个对象。private类名(){};//私有的构造方法,只能内部访问publicstatic类名getInstance(){returnINSTANCE;}//定义静态方法,返回自己的实例对象。ii.第二种单例模式创建方法。1.Private类名(){}//私有的构造方法,只能在类的内部被调用。2.publicstaticfianl类名INSTANCE=new类名();//公有的不能被修改的静态成员对象。26、内部类——定义在类里面的类a)成员内部类i.相当于成员方法,可以访问外部类的所有成员;ii.因为成员内部类相当于成员方法,所以想要创建内部类对象时,必须得用外部类的对象去创建内部类对象:1.外部类名.内部类名变量名=new外部类名().new内部类名();b)静态内部类i.用static修饰的成员内部类,也相当于静态方法。只能访问外部类的静态成员。ii.因为静态,所以在创建内部类对象时,可以不用先创建外部类对象:1.外部类名.内部类名变量名=new外部类名.内部类名();iii.静态内部类中可以定义静态成员,非静态内部类则不可。c)方法内部类i.在方法中定义的类,只能在当前方法中被使用。27、当一个对象被当成垃圾从内存中释放时,它的finalize()方法会被自动调用。28、继承a)继承关键字:extends。b)格式:ClassAextendsB{}c)单继承——一个类只能有一个直接父类。29、重写父类方法a)条件:方法名、参数、返回值类型3个都相同。b)重写之后,子类调用被重写的方法时,就是调用自己写的方法。c)重写应用:i.应用对象是父类的公有方法。重载应用的对象是类本身的方法。ii.重写父类不适合子类的方法iii.实现接口。30、super关键字a)调用父类成员变量和成员方法:i.super.成员变量;ii.super.成员方法(参数1,参数2,...);b)调用父类的构造方法i.super(参数1,参数2,...);ii.必须位于子类的构造方法的第一行,且只能出现一次。iii.在实例化子类时,系统会在子类的构造方法中调用父类的构造方法——如果子类的构造方法中没有调用父类的构造方法,系统会自动调用父类的无参构造方法。所以每个类的无参构造方法一定不要漏了!子类也可以显示的调用父类的有参或无参构造法方法。c)解决重写了父类方法之后,不能调用父类方法的问题。31、final关键字a)final修饰的类不能被继承b)final修饰的方法不能被子类重写c)final修饰的变量是常量,不能被修改,且必须在定义时为变量赋值。32、抽象类a)关键字abstractb)抽象方法:abstractvoidshout(){};——没有方法体。c)包含抽象方法的类必须声明为abstract类:abstractclassAnimal{}d)抽象类可以不包含任何抽象方法,只需用abstract修饰。e)抽象方法不能直接实例化,只能让子类实例化。33、接口a)定义关键字:interface——interfaceAnimal{}b)接口中的方法被默认修饰为:publicabstract——抽象方法。c)接口中的变量被默认修饰为:publicstaticfinal——全局常量i.所以变量最好用全大写表示。d)因为方法都是抽象的,所以必须定义一个类来实现(implements)接口——ClassAimplementsB{}e)接口之间可以继承——interfaceCextendsB{}f)一个类可以实现多个接口,接口直接间用逗号隔开。g)一个类可以在继承一个类的同时,实现其它的接口。h)如果一个类去实现接口的话,那么这个类必须实现接口中所有的方法。34、多态a)方法上的多态i.类内部方法的重载ii.子类对父类方法的重写b)对象上的多态性i.假设父类:A;子类BBb=newB();ii.对象的自动向上转型:Aa=b;//子类对象,变成了父类对象。1.虽然a指向A的对象,但是如果B重写了A的方法,那a调用的还是B中的方法。iii.对象的强制向下转型1.若Aa=newA();2.Bb=(B)a;//父类对象变成了子类对象。3.这时对象b调用的是子类的重写的方法。4.注意:对象发生强制向下转型之前,必须保证已经发生了向上转型,否则会出异常。35、异常a)异常类分为:编译时异常、运行时异常b)异常处理机制:i.try...catch...finally1.try代码包含可能发生异常的Java语句,catch块中包含针对一场进行处理的代码。2.当发生异常时,系统将异常信息封装成一个异常对象传递给catch代码块。所以catch需要定义1个对应的异常类变量。3.finally代码块包含,无论发生什么异常都要执行的代码。常用于关闭系统资源。ii.throws关键字声明抛出异常,调用者对其处理。这种方法能通过编译,但是发生异常后就会终止运行。c)自定义异常i.首先定义一个继承Exception异常的异常类;异常类中编写一个无参构造方法(调用父类无参构造方法),再编写一个带String参数的构造方法(也调用父类的带Stirng参数的构造方法)。ii.再定义一个测试类,定义要调用的方法,并在此方法后面用throws关键字声明抛出自定义异常;再在方法体内判断什么时候用thrownew自定义异常(“要打印的信息”)。//声明自定义异常对象。iii.最后在测试类的main方法中,iv.try{...}catch(...){System.out.printlan(e.getMessage)}finally{...}36、线程的创建:a)继承Thread类,并重写run()方法。然后newThread().start;开启线程。b)实现Runnable接口,重写run()方法。然后newThread(newmyRunnable).start开启线程。37、两种实现多线程的比较——实现Runnable接口的方法更好a)可以让多个线程共享资源。——售票系统需要。b)避免单继承。38、36、
本文标题:Java笔记总结
链接地址:https://www.777doc.com/doc-1847556 .html