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类或接口中
访问权限修饰符
- public:共有访问。对所有的类都可见。
- protected:保护型访问。对同一个包可见,对不同的包的子类可见。
- default:默认访问权限。只对同一个包可见,注意对不同的包的子类不可见。
- private:私有访问。只对同一个类可见,其余都不见。
非访问权限修饰符
- static 修饰符,用来创建类方法和类变量。
- final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
- abstract 修饰符,用来创建抽象类和抽象方法。
- synchronized 用于多线程的同步。
- volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
- transient:序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。
7. request.getAttribute() 和 request.getParameter()
request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。
getAttribute是返回对象,getParameter返回字符串。
8. forward和redirect
<jsp:forward
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”