1>path为系统指定了相关的程序(如javac.exe、java.exe等)所在的路径,classpath为java虚拟机指定了加载的.class
文件所在的路径。
2>main方法是应用程序的入口,在程序运行时有java虚拟机调用,除此之外与普通方法没有什么不同。main方法可以重
载,被其他方法调用,也可以由子类继承,或在子类中重新定义(隐藏父类的main方法)。
3>如果要进行精确的计算,不要使用浮点类型,浮点类型只是一种近视的储存。
4>JDK1.5以后提供了基本数据类型自动封箱和自动拆箱的功能。
5>注意:i=i++;//i的值永远不变,因为temp=i;i=i+1;i=temp;所以,i一直都没有变。
6>表示数组的长度属性是length,不要和String类的length()方法相混淆。
7>java方法的调用只有值传递,不管传递的是基本类型还是引用,都不能通过形参的值而反作用于实参。传递引用的时
候,可以间接改变对象的的内容,不改变不了形参的本身。
8>protected可以在类的内部,类所在的包中以及类所在的包外的子类中访问。
9>构造器不是方法也不是类的成员,没有返回值,子类不能继承,但子类在自己的构造器中调用父类的构造器,而父类
又会调用其父类的构造器,这是一个递归的调用,直到调用到Object的构造器为止。
10>父类的引用指向子类的对象,向上转型,引用得到的只是子类中与父类相同的属性;而只有存在父类的引用指向子
类的对象的子类,才可以执行强制向下转型,转型后得到是是子类自己本身;
11>instanceof用来判断左侧的操作数的引用类型是否为右侧操作数(类或接口)的类型。例如:A instanceof(B);//B必
须是A是的父类,或者是同一类型时才为true;
12>重载是在编译时前期绑定根据实参的"引用"的类型来判断调用哪个方法;而在多态中,方法的调用是动态绑定的,
即在运行时根据实参引用指向的"对象"的类型来调用相应的方法,从而实现多态;
13>java类初始化顺序:父类静态块 --> 然后是子类静态块 --> 父类自由块 --> 父类构造函数块 --> 子类自由块 -
-> 子类构造函数块;注意,static块只执行一次,而自由块和构造函数块是每new()一个对象执行一次;
14>==和equals的比较:
1、==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的
内容是否相同。equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
2、==比较的是2个对象的地址,而equals比较的是2个对象的内容。显然,当equals为true时,==不一定为true
15>垃圾回收机制:1、java垃圾回收机制值回收不再可用即没有任何引用指向的对象。2、垃圾回收只会回收内存资源
,即new出来在堆上的对象,而对本地方法(native)并不回收。
16>方法的重载,名相同,参数列表不同;重载的选择顺序:形参和实参列表类型完全相同 --> 参数类型兼容的方法
(int和Interger等) --> 可变类型(int变folat等);
17>java中方法重写(override)的要求:
1、子类中的方法与父类中的方法的返回类型:
如果返回类型是引用类型,则重写方法的返回类型可以声明为超类方法声明的返回类型的子类型;如果返回类型是基本
类型,则重写方法的返回类型必须和超类方法的返回类型相同。
2、子类中的方法与父类中的方法有相同的方法名称
3、子类中的方法与父类中的方法有相同的参数列表
4、子类中的方法的访问级别不能低于父类中该方法的访问级别(举例:
父类方法的级别是protected,那么子类重写该方法,其级别必须是protected或者public,一定和父类的访问级别
相同或者更宽,否则编译无法通过) (public>protected>default>private)
5、子类中方法抛出的异常范围不能大于父类中方法抛出的异常的范围,(子类可以不抛出异常也满足该原则,即是说父
类抛出异常,子类不抛出异常,编译通过没问题。)
18>重写和隐藏基本相同,不同是:方法的隐藏是父类和子类方法都是static类型,成员变量的隐藏侧是子类声明了与
父类相同的成员变量;重写实现多态,调用哪个类的成员,重写和隐藏是不同的,对于重写来说,是由运行时的真正对
象决定的,对于隐藏来说,是由引用的类型决定的。
19>泛型的检测只是在编译期,所有在参数类型的信息都是在编译期间处理,在运行期间这些类型的已经消失,所以用
不用泛型最后得到的.class文件一样的。
20>泛型的几个知识点:
a、泛型的参数不能够当作父类与子类那样使用,List<Super>只能接受List<Super>类型的参数,而不能接受List<Sub>
类型的参数.
b、使其能够接受任何类型的参数类型,就可以使用类型通配符'?'来实现。
c、使用List<?extends Number>list可以接受参数为Number和Number的子类型;使用List<?super Number>list可以接
受参数为Number和Number的父类型;
21>System类是一个final类,不能被继承,构造器为private,不能实例化,不过他又一下静态的成员变量,如下:
1、public static long nanoTime();//返回最准确的可用系统计时器的当前值,以毫微秒为单位。
2、public static void gc();//运行垃圾回收器。
3、public static void exit(int status);//终止当前正在运行的 Java 虚拟机。
4、public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length);//从指定src源
数组中复制一个数组,复制从指定的位置srcPos开始,到目标数组dest的指定位置drstPos结束。元素个数为length个
22>Arrays类常用对数组的操作方法:
1、排序sort():
a、对整形的排序public static void sort(int[] a);//按升序排列
b、对浮点型的排序注意NaN与任何值比较的结果是false;
c、对引用类型的排序要实现Comparable的public int compareTo(T o)方法;//小于返回负值,等于返回0大
于返回正值;
2、查找binarySearch方法、equals方法;
23>Object类的方法:
1、获取对象getClass()//一般的类类名.getClass();对于基本数据的包装类侧用:类名.TYPE获取对象;
2、equals方法:因为string中重写了equals方法,其equals方法比较的是对象的内容(即字符串的内容)而非地址;但
是在没有重写Object中equals方法的类,equals比较的是对象的地址,默认equals与==是一样的,判断是否为同一对象
即同一地址;请看:
public boolean equals(Object obj){
return(this==obj);
}
所以默认情况,默认equals与==是一样的,但equals方法被重写为比较其他,或内容等;
注意:equals相等侧hashCode相等,但hashCode相等equals不一定相等;
24>String类是不可改变的,对象一旦创建就不可以改变。多个相同的string常量,在常量池中实际是只有一份;
例子:
public class TestString {
public static void main(String args[]) {
String s = "Hello";
s = "Java";
String s1 = "Java";
String s2 = new String("Java");
System.out.println(s);
System.out.println(s == s1);
System.out.println(s == s2);
}
}
/*output:
*Java
*true
*false
*/
分享到:
相关推荐
Java NIO,全称为Non-Blocking Input/Output(非阻塞输入/输出),是Java标准库提供的一种替代标准I/O(BIO)模型的新选择。NIO在Java 1.4版本引入,它为Java应用提供了高效、低延迟的数据处理方式,特别适合于高...
### 细说Java线程问题:深入理解与实践 在Java编程中,线程是执行的基本单位,它允许程序在操作系统层面并发执行多个任务。掌握Java线程的原理及其使用方法,对于提升软件性能和响应性至关重要。本文将从线程的概念...
Java中的`util`类是Java开发中不可或缺的一部分,它们提供了许多数据结构和工具类的实现,使得开发者可以方便地处理各种数据。`java.util`包是Java标准库的核心部分,包含了许多用于处理集合、时间日期、随机数生成...
### 细说Java之常用集合类 #### 一、引言 在Java开发过程中,我们经常需要处理数据的集合操作,比如存储、检索、排序等。为了方便开发者使用,Java SDK提供了一系列内置的集合类,它们主要位于`java.util`包中。...
最后,关于学习资源,"细说Java之常用集合类.pdf"这本书籍教程应该详细介绍了这些集合类的用法和实现细节,可以帮助开发者更好地理解和运用Java集合框架。"下载说明.txt"可能包含获取更多资源的指南,如"A5下载- 更...
细说区块链白皮书
总结来说,《细说PHP》这本教材为PHP初学者提供了一条清晰的学习路径,从基础语法到面向对象编程,再到与数据库的交互,直至设计模式和高级功能的介绍,每一步都有细致的讲解和实例演示。辅以视频教程,它能够帮助...
细说区块链白皮书.pdf
该书的标题是《细说PHP》,并且被描述为“入门不错的书,讲的比较细致,一个资源分即可”。这表明该书非常适合初学者,内容详尽,让学习者可以很容易地理解和掌握PHP编程的基础知识。 标题“细说PHP下载 兄弟连”...
韩顺平细说servlet.生成验证码的代码
细说PHP 书
本书顺应Android软/硬件、云计算整合潮流,详细剖析了NDK开发中涉及的各类问题和解决方案:搭建Android NDK开发环境的每一步细节,开发第一个Android NDK程序,Android NDK中Java与C/C++代码的互相调用,Facade设计...
学习《细说PHP》配套源码时,建议按照书中的章节顺序逐步进行,每读完一个知识点就尝试理解和运行相应的代码,遇到问题时可参考书中的解释或在线搜索解决方案。同时,不要忘记在实践中思考如何将这些代码应用于自己...
它定义了一组API,使得Java代码可以调用C/C++函数,反之亦然。理解JNI的工作原理和API使用方法是进行NDK编程的基础。例如,如何声明Java方法供C/C++调用,如何在C/C++中调用Java对象的方法,以及如何处理数据类型...
《细说PHP》是一本由LAMP兄弟连出版的专业PHP技术书籍,其核心目标是深入解析PHP语言的内部机制和实际应用。这本书的配套源码提供了丰富的实例和实践素材,帮助读者更好地理解和学习PHP编程。以下我们将从源码中探讨...
在《轻快的好Java》一书中,作者Bruce A. Tate与Justin Gehtland会从头细说。首先,他们列出了五项基本原则,展示出如何建构简单、 独立的程序代码,并带领你了解怎样选择技术。他们还对两种广为采用的开放源码应用...
《细说PHP(第2版)》自出版以来,销售一路在同类书籍中领先,已成为PHP学习者首选的工具书。为了可以让读者携带方便及更精准地掌握PHP的重点、要点,同时能使之作为大学计算机系PHP教材普及,特别推出《细说PHP精要...
兄弟连 细说Linux PDF文档。共12个按章节总结
《细说PHP》以实用为目标设计,包含PHP开发最主流的各项技术,对每一个知识点都进行了深入详细的讲解,并附有大量的实例代码, 图文并茂。系统地介绍了PHP的相关技术及其在实际Web开发中的应用。
兄弟连Linux视频的配套电子书籍,在学习Linux的时候,看视频后,再看看书籍,更好!!