java基础

来源:互联网 发布:网络借款 编辑:程序博客网 时间:2024/05/21 17:16

1、switch...case:如果没有break,则继续往下执行,不作case判断,直到遇到break;

例如:

case:100

System.out.print(100);

case:90

System.out.print(90);

break;

会打印100和90.

2、早绑定指编译期绑定,晚绑定指运行时绑定。

3、抽象类的都定义成具体的是可行的,为什么要抽象呢?因为具体的实现,在很多情况下是没有意义的。比如说定义一个“形状”的抽象类,里面有一个求面积的方法,可以实现这个方法,比如返回一个0,但是这个实现从应用上讲是没有意思的。所以,通用且抽象的方法就是,只定义一个方法,具体的实现交由它的实现类来实现。

4、何为类加载:就是把类从硬盘加载到java虚拟机。

为何静态部分先执行且执行一次:静态部分属于类的一部分,类加载到虚拟机后既执行。因为类只加载一次,所以静态部分也只执行一次。

为何静态方法里不能有非静态部分:因为静态部分是类加载到虚拟机的时候就执行了,此时还没有对象。所以无法访问对象的部分。

5、父类与子类之间静态方法不存在重写(overwrite),只有一方是静态方法也不行。父类与子类有相同名称的静态方法,在子类中,会继承父类的静态方法但是会将其隐藏。

有一种情况需要特别说明:Parent p=new Child();p.staticMethod();会执行子类中被隐藏的父类的静态方法,打印“parent static method is running”

6、关于final:①一个类不可以继承final类。②一个继承了父类的子类可以定义为final类。

为什么:java中,每个类都继承自Object,如果这些类不能定位为final类,就不会出现任何final类了。从侧面证明了②

7、单例模式:对象在成员变量中初始化好还是在公共方法中初始化好:①好(类加载时既初始化,保证了只初始化一次,即使在多线程情况下。),情况②在多线程情况下,有可能不是单例的。

8、private:被private修饰的属性和方法,只能在该类内部使用。

默认的:类内部、相同包下面的类。

protected:类内部、相同包、该类的子类继承访问。错误举例:A继承B,在A中实例一个B,通过B的对象访问protected属性。

9、接口名 引用名=new 接口名[2]:正确。

10、二分查找:首先要求传入的int数组必须是有序的。代码示例:

<pre name="code" class="java">int array={,1,2,3,4,5,6,7,8,9};int low=0;//数组低位索引int high=array.length-1;//数组高位索引int middle=0;//数组中间索引while(low<=high){middle=(low+high)/2;<span style="white-space:pre"></span>if(array[middle]==value){<span style="white-space:pre"></span>return middle;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>if(array[middle]>value){<span style="white-space:pre"></span>high=middle-1;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>if(array[middle]<value){<span style="white-space:pre"></span>low=middle+1;<span style="white-space:pre"></span>}}return -1;




0 0
原创粉丝点击