标签:概念 UI 大小写 public sys cto 多重循环 声明 trim
1.面向对象的特征:抽象、继承、封装、多态(形象记忆:抽积分多--想想10086)
1.1抽象
忽略一个主题中与当前目标无关的东西,专注的注意与当前目标有关的方面.(就是把现实世界中的某一类东西,提取出来,用程序代码表示,抽象出来的一般叫做类或者接口)。抽象包括两个方面:数据抽象、过程抽象。
1.2继承
一个类可以从现有的类中派生,这个过程称为类继承;新类继承了原始类的特性,新类称为原始类的派生类(子类),原始类称为新类的基类(父类)。子类可以从父类中继承方法和变量,这里注意,不会继承父类的构造器!子类可以新增自己的方法与变量,同时拥有父类的方法与属性;而且子类可以重写父类的方法;
1.3封装
就是把类中具体的方法和属性封装起来,用private私有化,通过类似于get/set的方法访问方法或者变量,最常见的就是javabean;
1.4多态
多态是指允许不同类的对象对同一消息做出响应.多态性包括参数化多态性(重载)和包含多态性(重写,继承,接口实现);方法的重写,重载与动态链接构成多态性。java引入多态的概念原因之一就是弥补类的单继承带来的功能不足;
2.作用域public,private,protected,以及不写时的区别
3.String 是最基本的数据类型吗?String中常用的方法有什么?String是否可以被继承?Stirng与Stringbuilder,StringBuffer的区别?
包含的字节(一个字节包含8位,一位就是一个二进制位)分别是:
byte-1;short-2;int-4;long-8;(很好记忆:笨死了,分别是1*2*2*2)
float-4;double-8;
char-2~4(这根编码方式有关,因为语言太多的缘故);
boolean-一般理论上占1字节,但是在java虚拟机中由于都用int类型代替,所以实际上是占了4字节;
4.基本类型与其对应的封装类有什么区别和联系:(了解思路:是什么,为什么,有什么注意点)
5.&和&&的区别?
&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与,&&具有短路特性
6.heap 和stack 有什么区别?[属于JVM内容]
java中的堆(heap)和栈(stack),是一种内存的存储机制,分别是堆内存和栈内存,在程序中定义的基本类型变量和对象的引用变量,都是存储在stack内存中的,当执行超过变量的作用域之后,会自动释放这个变量对应的内存空间,另做他用;heap内存主要存储new出来的对象和数组,它们占用的内存不会被自动释放,只有没有引用变量指向它的时候,才变为垃圾,在随后的一定时间短被gc(垃圾回收器)回收;
通俗点说:就是steap中存放的是java中的指针,可以指向heap中的实际存储的数据;
7.Math.round(11.5) 等于多少? Math.round(-11.5)等于多少?
该方法返回与参数最接近的整数,Math.round(11.5)==12 Math.round(-11.5)==-11
8.数组有没有length()这个方法? String 有没有length()这个方法?
这是个陷阱,数组是一种数据结构,而不是一个类,而String是一个类,所以有方法length(),数组这种数据结构有的只是length属性;
9.在JAVA 中,如何跳出当前的多重嵌套循环?
可以使用break;这里注意普通的break只能跳出一层循环,而使用标号就可以跳出多重循环;使用return直接连下面所有的程序都不执行了,这点要注意!
10.构造器是否能被override,能够被overload,能够被继承?override与overload的区别?
11.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?[hashcode的存储机制]
不对,有相同的hash code
结论(没太明白,先记着):
12.以下二条语句返回值为true 的有:
A:“beijing”==“beijing”;
B:“beijing”.equalsIgnoreCase(new String(“beijing”));
结论:A和B,A中两个Beijing是没有new出来的,所以指向的堆地址相同,但是后面B的new的指向不同的堆地址;==对比的是物理地址;equals对比的是值得大小;
13.我们在web 应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
1 public String translate(String str){ 2 String tempStr = ""; 3 try{ 4 tempStr = new String(str.getBytes("ISO-8859-1"), "GBK"); 5 tempStr = tempStr.trim(); 6 }catch (Exception e){ 7 System.err.println(e.getMessage()); 8 } 9 return tempStr; 10 }
14.abstract class 和interface 有什么区别?接口中是否可以定义静态方法?
先了解抽象方法:它只有声明,而没有具体的实现,也就是方法体。例如:public void fun();
抽象类(abstract class):
包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法。注意,抽象类和普通类的主要有三点区别:
抽象类和普通的类并没有区别;
接口(interface):
接口中可以有变量和方法,其中的变量会被隐式地指定为public static final变量,方法会被隐式地指定为public abstract方法且只能是public abstract方法;且所有的方法不能有具体的实现;如果一个非抽象类遵循了某个接口,就必须实现该接口中的所有方法。但是对于遵循某个接口的抽象类,可以不实现该接口中的抽象方法();
两者区别:
接口中不能定义静态方法:一个类要实现接口中的方法,其实就是对接口方法的重写。而要实现静态方法,就必须重写接口中的静态方法;如果可以定义抽象静态方法static,设 static abstract method(); 是抽象类A的方法,那么因为是静态方法那可以用A.method(); 而这个方法又是抽象的没有方法体,掉用了怎么执行呢?
15.java问什么不允许在静态方法中访问非静态方法或变量?
静态方法是属于类的,而普通方法是属于对象的。属于类的静态方法可以在对象不存在的时候就能访问到,而普通方法必须先new一个对象才能用这个对象访问。当我们访问调用静态方法的时候(使用类名.静态方法名)这个时候就没有对象创建,所以普通方法是访问不到的。为了避免这种错误,所以java就不允许在静态方法中访问非静态方法。
16.Static inner class(静态嵌套类)与Inner Class(内部类)有什么区别?
使用方式:
1 static class Outer { 2 class Inner {} 3 static class StaticInner {} 4 } 5 6 Outer outer = new Outer(); 7 Outer.Inner inner = outer.new Inner(); 8 Outer.StaticInner inner0 = new Outer.StaticInner();
静态内部类的作用:只是为了降低包的深度,方便类的使用,静态内部类适用于包含类当中,但又不依赖与外在的类,不用使用外在类的非静态属性和方法,只是为了方便管理类结构而定义。在创建静态内部类的时候,不需要外部类对象的引用;
非静态内部类的不同之处:可以自由使用外部类的所有变量和方法;
17.静态变量和实例变量的区别?
静态变量也称为类变量,归全类共有,它不依赖于某个对象,可通过类名直接访问;而实例变量必须依存于某一实例,只能通过对象才能访问到它
18.写clone()方法时,通常都有一行代码,是什么?
clone的用途与含义:https://blog.csdn.net/u011514810/article/details/52345113
clone的实际使用:http://www.cnblogs.com/o-andy-o/archive/2012/04/06/2434904.html
19.GC 是什么? 为什么要有GC?GC会有内存泄漏吗?
GC:垃圾回收器,用于内存的管理,准确的说是用来管理heap内存的,Java 中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”,如果没有索引指向相应对象的内存区域,GC会在固定时间进行内存回收,但是stack内存的却是根据代码中变量是否超过了变量的作用域而被java回收。扩展:前面的stack内存和heap内存的区别;在扩展:研究JVM机制;
GC会发生内存泄漏,当存在没有用却又有索引指向他的时候就无法回收相应内存;
20.String s=new String(“xyz”);创建了几个String Object?
两个对象,一个是"xyx",一个是指向"xyx"的引用对象s;
20.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
接口可以继承接口。抽象类可以实现(implements)接口,抽象类可继承实体类,但前提是实体类必须有明确的构造函数
21.说出一些常用的类,包,接口,请各举5 个;
22.Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类?是否可以implements(实现)interface(接口)?
可以继承其他类或实现其他接口
23.在java 中一个类被声明为final 类型,表示了什么意思?
表示该类不能被继承,是顶级类
标签:概念 UI 大小写 public sys cto 多重循环 声明 trim
原文地址:https://www.cnblogs.com/silence-fire/p/8927400.html