JJJJavaavaavaava学习笔记视频观看的顺序如下:1.配置ClassPath时在新建的ClassPath里加进“.;(当前路径)后,就不用再加进其他的指定Class路径的值了,只要运行时让命令行定位在Class所在文件夹就可以了。2.第2222章3.JAVA标识符的命名要遵循约定俗成的规则“见名知意”且不能与JAVA语言的关键字重名。4.常量是“值不可改变的变量”,例如:final。5.JAVA程序的执行过程6.成员变量:类体内方法体外声明的变量局部变量:方法体内声明的变量重要:变量出了它所在的大括号就不起作用了,反之只要是在它的大括号内任何地方都起作用。7.JAVA基本数据类型BOOLEAN类型只有两个值:TRUE和FALSE。8.整数类型中的八进制以0(零)开头,十六进制以0X或0x开头。声明LONG(长整型)时,在数值的后面必须加L或l,否则会出错。9.浮点型10.数据类型的互相转换11.JAVA编译器接到一个整数时默认的当成INT类型,接到一个小数时默认的当成DOUBLE类型。12.(1)十进制转二进制例9.25[10]→1001.01[2]方法:整数部分:9除2等于4余14除2等于2余02除2等于1余0↘1所以整数部分等于1001100110011001小数部分:0.25×2=0.50.5×2=1所以小数部分等于.01.01.01.01(2)二进制转十进制例:1001.01[2]→9.25[10]1×8+0×4+0×2+1×1+0×1/2+1×1/4=8+0+0+1+0+0.25=9.25(3)二进制转八进制转十六进制可采用取位法,转八进制是每次取3位,转十六进制是每次取4位,然后将每次取出的二进制各段用8421法转成十进制数,合起来即为要转的八进制数或十六进制数。例:二进制数101110→八进制可取出两个3位段101和110,101用8421法转成十进制4+1=5,110用8421法转成十进制4+2=6,把5跟6合起来得的数56即为八进制数,所以最终的八进制数为056。(这里前面是数值0)二进制数(00)(00)(00)(00)101110→十六进制从右往左取出一个4位段1110后还剩两位10,不足4位,在前面补两个0得0010,0010用8421法转成十进制得2,1110用8421法转成十进制数得8+4+2=14,14的十六进制数为E,2跟E合在一起得出十六进制数为0x2E(这里前面是数值0跟字母x)(4)(4)(4)(4)十进制转八进制、十六进制是分别除以8和除16,直到不能再被16除。也可以先把十进制转成二进制,再转成八进制、十六进制。(5)(5)(5)(5)八进制、十六进制转十进制是第一数位乘以8和乘以16的位次方。(6)(6)(6)(6)八进制、十六进制转二进制可以用8241的逆运算法算出各位的二进制值。这里要注意,八进制是3位分法,所以只可能用到421三位,8位算出来的肯定是0,一定要去除。十六进制则不同,只有在最前面那位是0时才需要去除。(7)(7)(7)(7)八进制、十六进制之间的互转可以先转成十进制或二进制再转成十六进制、八进制。11.&&(短路与)||(短路或)跟&(逻辑与)|(逻辑或)的区别逻辑与、逻辑或无伦如何符号前号的值都要计算出来13.字符串连接符相关14.运算符的优先顺序15.三目运算符X?Y:ZX的值是BOOLEAN型,一般为一个表达式,X为True整个表达式的值为Y,反之为Z。16.IF……ELSE语句中只有一句要执行的语句时,可以省略后面的“{}”,初学者最好是加上。17.用Tab键敲空格时如果敲多了可以用Shift+Tab来取消多余的空格18.While和DoWhile循环相关While语句的格式Dowhile语句的格式这里要注意DoWhile语句的最后有“;”。19.Continue语句是条件成立时本次循环跳过Continue语句下面的语句,开始下一次循环,而Break语句是当条件成立时整个循环就结束。20.Switch语句中应注意的地方,Javak中Switch语句只能探测Int类型值(比Int类型长度值小的也可以探测,如Char、Byte)。第3333章面向对象设计方法21.注:实例=对象成员变量=属性(马士兵的口头说法)方法=函数22.成员之间的几种关系:关联关系、继承关系、聚合关系(整体和部分)、实现关系23.必须先创建(NEW)出一个对象,然后才能使用“·”调用他的对象方法24.NEW+构造方法创建一个新对象25.构造函数是JAVA类中用来初始化对象的函数,其必须与类同名且没有返回值如下:Person(int_id,int_age){id=_idage=_age}接来调用如下:Persontom=newPerson(1,25);26.一般情况下,类中会自己定义一个初始值为0的构造方法如:classPoint{Point(){}intxinty;}红色的部分为自己自动生成的构造方法,可以不写。如果自己定义了构造方法后,系统就不会再帮你生成了。27.方法的重载是指在一个类中定义的方法名相同而方法的参数不同的几个方法之间形成的关系,调用时,会根据不同的参数表选择不同的方法。参数不同可以是参数类型不同也可以是参数的个数不同28.和普通方法一样构造方法也可以重载29.同一类的每个对象有不同的成员变量存储空间,同一类的每个对象共享这个类的方法(非静态方法是针对每个对象进行调用)。30.关键字THIS31.关键字STATIC在类中,用STATIC声明的成员变量是静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对该类的所有对象来说STATIC成员变量只有一份(不会重复的生成)。用static声明的变量分配在数据区域里。用STATIC声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以STATIC方法中不可访问非STATIC成员(静态方法不再是针对某个对象调用,所以不能访问非静态成员)可以通过对象引用或类名(不需要实例化)访问静态成员。所以以后看到一个类名加上一个变量那个变量肯定是静态的32.变量在内存中的分布情况:字符串、静态成员变量等在数据(data)存储区,形式参数等临时声明的变量在栈(stack)内存里,NEW出来的东西全部在堆(heap)内存里33.packageandimportclass文件的最上层包的父目录必须位于classpath下执行一个类需写全包名(如果一个类已经包含一个包里的话,执行类名的类是无法运行的)34.Java自带的包除了java.lang包在使用时不需在程序开头引入外,其他的包在使用时都必须在程序开头引入自已打包一些类的方法:jar–cvfabc.jar*.*(abc.jar是包的名字,*.*是把要打包的文件夹里的所有文件都包含在内)“cdcdcdcd........”命令行中返回上一个文件夹35.继承与控制权限子类从父类(基类)继承(extends)过来所有东西,private的变量只能拥有不能改变java里的继承是单继承即一个子类只能有一个父类,但是一个父类可以同时用多个子类38.方法的重写小技巧:在重写方法时最好是只接复制旧方法的格式,这样可以防止因不小心而写错字母倒至方法重写失败39.继承中的构造方法子类的构造的过程中必须调用其基类的构造方法。如果调用,必须放在子类构造方法的第一行构造方法:方法名与类名完全一致,没有返回值,连void也不能加!40.Object类是java中所有类的根基类。如果在类的声明中没有用extends指明它的基类那么它的基类默认是Object类。例:publicclassTest{}实际上是publicclassTestextendsObject{}。41.toString方法Object类中定义有publicStringtoString()方法,其返回值是String类型,描述当前对象的有关信息。在进行String与其它类型数据的连接操作时(如:System.out.println(“info”+person),将自动调用该对象类的toString()方法,该语句等价于System.out.println(“info”+person.toString())。可以根据需要在用户自定义类型中重写toString()方法。42.对象转型:43.多态(动态绑定、迟绑定):即在“执行期间(而非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。(此为java面向对象的核心方法)实现多态的三个条件:1.要有继承;2.要有重写;3.要有父类的引用指向子类的对象44.抽象类1.用abstract关键字来修饰一个类时,这个类叫抽象类;用abstract来修饰一个方法时,该方法叫抽象方法。2.含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。3.抽象类不能被实例化。4.抽象方法只需声明,而不需实现。45.final关键字46.interface(接口)接口中声明的属性必须也只能是publicstaticfinal的,声明时可以写publicstaticfinal,也可以不写。接口可以多重实现。接口中只能定义抽象方法,而且默认为public的,也只能是public的。接口可以继承(extends)其他的接口(接口不可以继承类),并添加新的属性和方法。一个类可以实现多个接口。多个无关的类可以实现同一个接口。与继承关系相似,接口与实现类之间存在多态性。实现接口用implements。47总结:第四章异常处理1.所谓错误是指在程序运行的过程中发生的一些异常事件�一个图�五个关键字:TRY,CATCH,FINALLY,THROW,THROWS�先逮小的,再逮大的�异常和重写的关系2.捕获和处理try{……}语句指定了一段代码,该段代码就是一次捕获并处理例外的范围。在执行过程中,该段代码可能会产生并抛出一种或几种类型的异常对象,它后面的catch语句要分别对这些异常做相应的处理。如果没有例外产生,所有的catch代码段都被略过不执行。在catch语句块中是对异常进行处理的代码,每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象。在catch中声明的异常对象(catch(SomeExceptione))封装了异常事件发生的信息,在catch语句块中可以使用这个对象的一些方法获取这些信息。例如:getMessage()方法,用来得到有关异常事件的信息。printStackTrace()方法,用来跟踪异常事件发生时执行堆栈的内容。3.finally语句finally语句为异常处理提供一个统一的出口,使得在控制流程转到程序的其他部分以前,能够对程序的状态作统一的管理。无论try所指定的程序块中是否抛出例外,finally所指定的代码都要被执行。通常在finally语句中可以进行资源的清除工作,如:关闭打开的文件、删除临时文件4.声明方法抛出的异常注意:重写方法需要抛出与原方法抛的类型一致的异常或不抛出异常第五章数组1.java中声明数组不能指定其长度(数组里元素的个数)例如:inta[5]是错的几种常见的排序法(冒泡排序、希尔排序、堆排序、选择排序、插入排序)选择排序:给数组a[]里的数排序(从小到大),数组的长度为x.for(inti=o;ix.length;i++){for(intj=i+1;jx.length;j++){if(a[j]a[i]){inttem=a[i];a[i]=a[j];a[j]=tem;}}}冒泡排序法:给数组a[]里的数排序(从小到大),数组的长度为xfor(inti=x-1;i=1;i--){for(intj=0;j=i-1;j++){if(a[j]a[j+1]){inttem=a[j+1];a[j+1]=a[j];a[j]=tem;}}}数组自有方法Arrays.sort()Arrays.sort()Arrays.sort()Arrays.sort():二分查找法::::public