java刷题总结一

1、关于内部类、外部类的修饰符

内部类可以是静态static的,也可用public,default,protected和private修饰,

外部类的修饰符只能是public,abstract,final

2、关于接口和抽象类的特点

抽象类

a.抽象类都不能被实例化,必须用abstract修饰

b,抽象类可以实现接口中的方法,而且不需要全部实现(是类就是可以实现接口的)

c.抽象类中可以有普通方法、普通属性、静态属性、静态方法、构造方法、抽象方法(简单来讲的话就是抽象类是类,是类就有构造方法、成员变量(包括静态变量和普通变量),成员方法(静态方法和普通方法),特殊的是它也有抽象方法)

d.有抽象方法的类一定为抽象类。没有抽象方法的类不一定不是抽象类

e.子类继承抽象类重写全部方法时才不为抽象类,若之重写部分方法的话仍为抽象类

f.抽象类不能被private、static、synchronized、native这些关键字修饰*(简单来讲的话就是抽象类是要被继承的,所以不能private,static是不能修饰外部类,synchronized是多线程的同步机制,多线程不对抽象类操作,所以谈不上synchronized)

g.抽象类方法默认是default权限

接口

a.接口中没有方法体

b.在接口中只有常量,因为定义的变量,在编译的时候都会默认加上public static final 

c.接口中的方法均为抽象方法,也就是由public abstract修饰,没有写也是这样的(但是JDK1.8之后接口中可以有static方法或者default方法,但是这两种方法必须有方法体)

d.接口中没有构造方法(接口区别于类的体现),也不能实例化接口的对象(抽象类也不能进行实例化)

e.接口可以实现多继承,任何类都不可以多继承 

f.接口中定义的方法都需要有实现类来实现,如果实现类不能实现接口中的所有方法则实现类定义为抽象类

3.javac.exe  java.exe javadoc.exe  jdb.exe javaprof.exe

javac.exe 是编译程序,用于编译.java文件

java.exe 是执行程序,用于执行编译好的.class文件

javadoc.exe 是JAVA文档工具,用于生成Java说明文档

jdb.exe 是调试器,用于调试JAVA代码javaprof.exe 是剖析工具

4、能被java.exe成功运行的java class文件必须有main()方法

5、java程序的种类

1.Application:Java应用程序,是可以由Java解释器直接运行的程序。

2.Applet:即Java小应用程序,是可随网页下载到客户端由浏览器解释执行的Java程序。

3.Servlet:Java服务器端小程序,由Web服务器(容器)中配置运行的Java程序。

6、修饰符

final和abstract不能修饰同一个类

abstract类中不应该有private的成员,但是可以有的(因为抽象类就是类,类就可以有私有成员变量)

abstract类必须在abstract类或接口中

访问权限修饰符

  1. public:共有访问。对所有的类都可见。
  2. protected:保护型访问。对同一个包可见,对不同的包的子类可见。
  3. default:默认访问权限。只对同一个包可见,注意对不同的包的子类不可见。
  4. private:私有访问。只对同一个类可见,其余都不见。

非访问权限修饰符

  1. static 修饰符,用来创建类方法和类变量。
  2. final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
  3. abstract 修饰符,用来创建抽象类和抽象方法。
  4. synchronized 用于多线程的同步。
  5. volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
  6. transient:序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。

7. request.getAttribute() 和 request.getParameter()

request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。

getAttribute是返回对象,getParameter返回字符串。

8. forward和redirect

page="index.htm"/>  forward的跳转是请求服务器将页面改为新的页面,但是不会改变地址栏 

<jsp:redirect page="index.htm"/>  redirect跳转会改变地址栏为新的地址

9.数据类型转换问题

由大到小需要强制转换,由小到大不需要。

低 ---------------------------------------------> 高 
byte,short,char-> int -> long -> float -> double(虽然long位数是64位而float的位数是32位,但是float是通过某些计算的来的不仅仅是通过这32位直接转换来的,实际上float表示的值要比long型对大)

10. 字符常量和字符串常量

字符常量是单引号(包括一个字符或者,转义序列:‘\n’、'\101')

字符串常量是双引号:“123” “abc”

 

你可能感兴趣的:(java刷题总结一)