当前位置:文档之家› Java基础知识总结

Java基础知识总结

基础预备:低级基础1.1 java基本类型byte(字节)short(短整型)int(整型)long(长整型)float(浮点型)double(双精度)char(字符型)boolean(布尔型)1.2值传递和引用传递的区别值传递:实参初始化形参,两个存储单元不同,不影响实参的值引用传递:实际参数与形式参数指向同一个地址,形式参数的改变将会影响实际参数1.3当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?是值传递。

方法调用该对象引用的参数,参数被改变,但是引用不会改变1.4 &和&&的区别。

&和&&都是逻辑「与」,&&只要第一个表达式是false就不会计算第二个表达式&也可以作为运算符2.1使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变引用变量不能变,引用变量所指向的对象中的内容可以改变2.2final类型可不可以不初始化,如果没有初始化的final类型应该在哪里初始化?final一定有初始值,没有初始化叫空白final如果没有需要声明之后在其构造器中赋值2.3 "=="和equals方法究竟有什么区别?「==」是看两个对象引用是否指向同一个对象「 equals() 」是比较两个对象的内容是否相等3.1静态变量和实例变量的区别静态变量的变量前加了static 的修饰,其中一个对象将它值改变,其他对象得到的就是改变后的结果;实例变量的变量前没加static 的修饰,某一个对象将其值改变,不影响其他对象3.2是否可以从一个static方法内部发出对非static方法的调用?为什么?不可以。

使用非static方法需要先创建对象,而使用static方法则不用4.1 java中什么是自动装箱与拆箱呢?自动装箱是某地方需要Integer类型,你传int类型会自动生成Integer,反之Integer变int,就是自动拆箱4.2 int 和 Integer 有什么区别Int是基本数据类型,Integer是int的封装类。

原始类型封装类Boolean BooleanChar CharacterByte ByteShort ShortInt IntegerLong LongFloat FloatDouble Double5.1请说出作用域public, protected,以及不写时的区别不写是表示friendly。

作用域当前类同一package 子孙类其他packagepublic √√√√protected √√√×friendly √√××private √×××6.1能不能自己写个类,也叫ng.String?可以,但在应用的时候,需要用自己的类加载器去加载,否则,系统的类加载器永远只是去加载jre.jar包中的那个ng.String。

7.1 排序都有哪几种方法?请列举。

用JAVA实现一个快速排序。

冒泡,选择,插入,快速冒泡排序:冒泡排序:先比较第一位和第二位,把小数放前面大数放后面,接着比较第二位和第三位,直到最后一位,通过两个for循环再重复总位数次8.1什么是堆什么是栈。

Java 把内存划分成两种:一种是栈内存,另一种是堆内存。

栈:一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间堆:用于存放由new创建的对象和数组,数组和对象在没有引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占着内存,在随后的一个不确定的时间被垃圾回收器释放掉8.2 heap和stack有什么区别。

heap是堆stack是栈栈:一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间堆:用于存放由new创建的对象和数组,数组和对象在没有引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占着内存,在随后的一个不确定的时间被垃圾回收器释放掉8.2 Static Nested Class 和 Inner Class的不同。

Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。

而通常的内部类需要在外部类实例化后才能实例化。

9. 1 数组有没有length()这个方法? String有没有length()这个方法?数组没有length()这个方法,有length的属性。

String有有length()这个方法。

10.1描述一下JVM加载class文件的原理机制?装载:查找和导入类或接口的二进制数据;链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的;校验:检查导入类或接口的二进制数据的正确性;准备:给类的静态变量分配并初始化存储空间;解析:将符号引用转成直接引用;初始化:激活类的静态变量,初始化Java代码和静态Java代码块10.2、char型变量中能不能存贮一个中文汉字?为什么?一个char占1个字节,所不能存放第一章:万事万事皆对象1.1 面向对象的概念如果假设一部手机是一个对象的话,那么手机的高度,宽度等可以看做这个手机对象的属性,打电话发短信可以看做这个手机对象的方法,而生产这种手机的模板就是类。

在Java中,我们把属性数据和方法存放到类中(封装),通过类实例化出对象,围绕对象进行一系列的流程操作面向对象式编程有三个特性,即抽象、封装、继承和多态1.2 封装的概念是指把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象2.1是否可以从一个static方法内部发出对非static方法的调用?不可以。

使用非static方法需要先创建对象,而使用static方法则不用第二章:初始化与清理1.1垃圾回收的优点和原理。

并考虑2种回收机制。

垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。

垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。

回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。

2.1 java中会存在内存泄漏吗,请简单描述。

会存在,就是程序员可能创建了一个对象,以后一直不再使用这个对象,这个对象却一直被引用,即这个对象无用但是却无法被垃圾回收器回收的,这就是java中可能出现内存泄露的情况2.2 内存泄露的防止用spring管理对象2.3构造器Constructor是否可被override?构造器不能被继承,因此不能重写,但可以被重载。

第三章:隐藏与实现1.1 Overload和Override的区别。

Overloaded的方法是否可以改变返回值的类型?Overload是重载的意思,Override是覆盖的意思,也就是重写重载Overload可以改变返回类型第四章:复用类4.1 组合的概念组合就是A类是B类对象的一个属性!4.2 继承的概念继承是面向对象最显著的一个特性。

子类可以拥有父类的属性的方法,并扩展其能力4.3 Java 继承与组合的区别继承就是子类和父类看成一个对象组合就像类中的一个对象类5.1、是否可以继承String类?String类是final类故不可以继承5.2继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?父类静态—子类静态—父类的非静态域—父类的构造器--子类的非静态域—子类的构造器第五章:多态5.1 多态的概念多态的最主要目的是接口重用,可以屏蔽不同子类对象之间的差异,写出通用的代码,以适应需求的不断变化第六章:接口与内部类1.1、抽象类是什么?比如说到肯德基就像到炸鸡汉堡之类的1.2、抽象类的特性?1.抽象类不能被实例化,但有构造方法2.抽象类的抽象方法必须由子类复写3.如果类中包含一个抽象方法,该类必须为抽象类4.抽象类可以有非抽象方法,也可以没有抽象方法5.子类的抽象方法不能与父类抽象方法同名6.Abstract不能与final并列修饰一个类7.Abstract不能与final、static、private、native并列修饰一个方法2.1、什么是接口?接口是用来建立类与类之间的协议,只提供一种形式而没有具体的实现方式。

2.2、接口的特性是什么?●接口中的属性是常量●接口中的所用方法都是抽象方法●接口不能被实例化接口不允许实现接口2.3、接口与抽象类的区别?抽象类拥有任意范围的变量,也拥有自己的非抽象方法;但在接口中,它没有构造方法,仅允许拥有静态的、不能改变的成员,它的所有方法都是抽象方法3.1接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?不可以。

4.1什么是内部类?类中的类4.2内部类有哪些好处?什么时候使用内部类?实现多继承/jihuanliang/article/details/86619064.3 Static Nested Class 和 Inner Class的不同?Static 不需要实例化,Inner需要实例化。

第七章:异常与类型识别1.1 异常的概念派生于Error为系统异常,不可处理派生于Exception异常为编程异常,可处理InterruptedException —线程中断异常IOException — I/O异常ArrayStoreException —错误的类型对象存在数组里SecurityException —安全异常1.2给我一个你最常见到的runtime exception。

2.1 error和exception有什么区别?error 表示恢复不是不可能但很困难的情况下的一种严重问题。

比如说内存溢出。

不可能指望程序能处理这样的情况。

exception 表示一种设计或实现问题。

也就是说,它表示如果程序运行正常,从不会发生的情况。

2.2 final, finally, finalize的区别。

final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。

finally是异常处理语句结构的一部分,表示总是执行。

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

3.1运行时异常与一般异常有何异同,常见的运行时异常?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误3.2 try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?会执行,在return前执行。

相关主题