1.java即是编译式语言也是解释型语言;跨平台的网络语言;
垃圾收集机制是自动的,交给jvm
2.JVM:JVM是解释java跨平台特性的解决方案。有其独立的
硬件结构的虚拟计算机单元,只不过jvm不能装os,仅仅
是为了java代码的解释执行。
java的对象的引用都是jvm产生的hashcode。hashcode
组成是类名@序列化的编号
3.垃圾收集:
由于java是解释执行都是交给jvm,java编译器无法捕捉硬件
资源。所有java的垃圾回收都市交给jvm自动。
当然人工也可以通过System.gc();和finalize()函数
去讲需要垃圾回收的数据(引用指向null、生命周期结束)优先进入垃圾回收队列。当然
回收的时间还是交给jvm。
4.类c语言如何进行内存的申请和回收?
申请 方式 回收 回收方式
c malloc free
c++ new 构造 delete ~析构函数
java new 构造/ 自动 finalize或者自动
(static)初始化块
5.生命周期
6.变量、常量和变量类型:
byte short(2b) int(4b) long(8b) 0
float (0.0F/0.0f) double(8f) 0.0
char ('\u0000') (在 native2ascii中产生的)
boolean (false)
void
变量的默认值:
字面量lifery:(默认值的反推)
类型的强转:小类型转型为大类型方法:自动
大类型转型到小类型:强制
(类型)
lifery的后缀
long l=234234L;//也可以是l
float f=324.34F;
float f=(float)324234234.23;
short s=(short)234;
byte b=(byte)23;
void 是可以指向任何函数的指针(c++中)
考虑用哪种变量最节约内存?
7
final
final修饰变量=常量。类一旦初始化就不能改变.
final 修饰类,类就不能继承。
final 修饰函数,函数就不能重写override
final可以修饰局部也可以修饰全局。
8 static
c语言中用static修饰必须为局部变量(类似全局变量)
java中的static只能修饰全局变量不能修饰局部变量
static一般作为缓冲(作为较轻量级的缓存),一般都用finilze回收
static修饰的存储在独立的静态存储区。
9 初始化 (程序做准备)
1 构造函数
如果没有声明构造函数,系统自动生成模式构造函数 如果定义了带参数 的构造而忽略了默认构造,
这默认构造就不复存在了。
带参构造和默认构造是可以共存的,这就叫构造重载
2初始化块
给程序做准备 做初始化。也可以部分替代构造函数的功能,初始化块更简洁明了,不需要调用、不能重载。
3 静态初始化块
初始化静态成员,不需要调用。
如果存在三种,顺序是: 静态初始化块》初始化块》构造
如果存在 父子类 的继承结构 初始化顺序?
先父类静态初始化块 静态初始化块 父类初始化块 父类构造函数 子类初始化块 子类构造函数
例如 javaparson.java
package com.rt.test.oop;
/**
* SCJP,sun
* 存在父子结构的初始化顺序
* @author Administrator
*
*/
class Person{
{
System.out.println("1");
}
static{
System.out.println("2");
}
public Person(){
System.out.println("3");
}
}
public class JavaParSon extends Person{
{
System.out.println("11");
}
static{
System.out.println("22");
}
public JavaParSon(){
System.out.println("33");
}
/**
* 测试
* @param args
*/
public static void main(String[] args) {
new JavaParSon();
}
}
static 和非static的调用问题
通过实例化完成
静态成员如何调用静态成员
静态成员直接调用静态成员
非静态如何调用静态成员 直接调用
原因:static 的生命周期和内存结构决定。
1.JavaSE(语法、OOP、exception、error、assert、
网络、thread、新特性、generic)
2.DB(标准sql,sqlserver2k、oracle,mysql,嵌入式数据库derby,hsqldb等)
3.web(html\css\js\js oop高级知识\ajx\dwr\
jquery\xml\dom)
4.javaee:jsp、jdbc、servlet、设计模式、3layers
jstl\el\jca\jaac
5.软件工程:cmmi\uml
6工具:pd\(rose)\visio\project
7.软件:myeclipse 10\oracle10g精简版、sqlserver
editplus\office2010
8.开源框架:bdutils,fckeditor,displaytag,
ssh,junit\log4j
书籍 Thinking in Java
Javascript王者归来
JVM虚拟机大全
C primar plus
C++ primar plus
COM技术大全