第一次学习笔记


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技术大全





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值