[Java] 重新熟悉java的一些记录 从evernote上贴出来的

# javac时的编码问题

javac Hello.java  -encoding utf-8 

# 打成jar包

jar cvf hello.jar Hello.class 
基本数据类型 (4类8种)
逻辑型:boolean
文本型:char
整型:  byte / short /  int / long
浮点型:double  / float


复合数据类型就(多种,他们都是从Object这个类继承下来的)



String是一个类。字符串在java里是对象。在java SE 5中有三个类可以表示字符串

String对象表示的字符串是不能修改的。如果要对字符串修改,应该使用StringBuffer和StringBuilder类



如果是引用类型的变量,必须先得new一个对象出来


集合类

集合类是放在java.util.*;这个包里

集合类型主要有4种:set(集)、list(列表)、map(映射)和Queue(队列)。//队列为jdk5中的加上的



使用System.gc()手动回收

对于垃圾收集器来说还有一个值得一提的是finalize()这个方法,每一个对象都有一个finalize( )方法,这个方法是从Object类继承来的。它用来回收内存以外的系统资源,就像是文件处理器和网络连接器。该方法的调用顺序和用来调用该方法的对象的创建顺序是无关的。换句话说,书写程序时该方法的顺序和方法的实际调用顺序是不相干的。这只是finalize( )方法的特点。还有,每个对象只能调用finalize( )方法一次。如果在finalize( )方法执行时产生异常(exception),则该对象仍可以被垃圾收集器收集



static
子类不能重写父类的静态方法哦,也不能把父类不是静态的重写成静态的方法。想隐藏父类的静态方法的话,在子类中声明和父类相同的方法就行了



final
在类的声明中使用final

 使用了final的类不能再派生子类,就是说不可以被继承了。有些java的面试题里面,问String可不可以被继承。答案是不可以,因为java.lang.String是一个final类。这可以保证String对象方法的调用确实运行的是String类的方法,而不是经其子类重写后的方法



在方法声明中使用final

被定义为final的方法不能被重写了,如果定义类为final的话,是所有的方法都不能重写。而我们只需要类中的某几个方法,不可以被重写,就在方法前加final了。而且定义为final的方法执行效率要高



在变量声明中使用final

这样的变量就是常量了,在程序中这样的变量不可以被修改的。修改的话编译器会抱错的。而且执行效率也是比普通的变量要高。final的变量如果没有赋予初值的话,其他方法就必需给他赋值,但只能赋值一次。



访问控控制
               
classpackagechildgenralpublic  o o o oprotected  o o  o
default  o o

private  o





常见的几种流

字节流:传字节的。以8位字节为单位进行读写,以InputStream与OutputStream为基础类

字符流: 传字符的。以16位字符为单位进行读写,以Reader与Writer为基础类

文件流: 传文件的。属于节点流,对文件读写,传输。里面的类很多。

序列化:传对象的。一个对象怎么读啊,只有变成二进制才可以读,这就是序列化 ObjectInputStream和ObjectOutputStream



反射

这个概念是一个叫Smith的大师,由1982年提出来的。指的是一类应用,它们能够自描述和自控制。



applet
 <applet code="HelloApplet.class" width=150 height=150></applet>

appletviewer hello.html

 

posted on 2013-04-06 13:11  bluefrog  阅读(477)  评论(0编辑  收藏  举报