2013 1月-3月第一次求职过程中的总结

            看看各位牛人的成长路,索性也把自己2月前的求职面试总结分享下。

      1、从环境变量说起
path 是windows 系统启动时找到java编译器的路径 classpath 是运行java程序虚拟机的路径
在jdk1.4 后可以不用指定classpath ,但如果指定了classpath就得给后面加上了(.)意思是告诉虚拟机在当前盘符下找对应的java程序
如果没有加经常会出现,java程序可以编译通过,但是没法运行,会提示找不到对应的类。
2、变量
java中成员变量会默认初始化,但局部变量不会默认初始化
3、对一般数据类型的调用和方法的调用会在栈内存中为其分配空间等到方法使用完成之后会自动消除,
而对于引用类型数据会先在栈内存中生成引用(指指向堆内存的地址)进而指向对内存中具体的存储对象
4、重载(overload)切记是方法的参数类型或方法的参数个数不同,而不可以跟具参数的返回值确定重载。重载时方法的返回只可以相同。
   特殊的构造方法也是可以重载的。
5、对于一个简单的java类classload 加载时只会在声明一个对象不会new 一个对象Class.classforname()加载时会创建相应的对象。
6、对于new一个对象new a()是就相当于调用了虚拟机提供的无参构造方法。
7、对于i++ 是先将i本身的值赋值给其他变量 在将自身加一  而++i是先将i自身加一赋值给其他变量。
8、内存分析过程中方法的返回值会在栈内存中保留
9、java中static 变量存放在静态区(data seg),字符串常量也保存在此区域。string 类型也属于引用类型
10、成员变量只有new 出来时才会在堆内存中分配空间 ,局部变量才会在栈内存中分配空间。
11、静态只能访问静态的东西(即变量和方法)
12、为了解决类命名冲突问题java中引入包的概念。
13、命令行打包  jar cvf xx.jar +class 类的路径 jar cvf xx.jar *.* 把当前目录下的全部打包。
14、子类可以通过super(参数列表)调用父类的构造方法。通过this(参数列表调用自己的构造方法)
15、如果使用super 之后就必须写在子类的构造方法第一行,在子类的构造过程之中必须调用父类的构造方法。
16、Object 类中的equals()底层还是比较内存中的引用是不是相等。通常情况下将被重写。
17、基础运算符& 和 && 的区别 &的可以用于逻辑运算符还可以用作位运算符 而 && 用作逻辑运算符 如果左边的不为真后面就不会在运行。
18、局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量
19、接口中的方法不能用private修饰否则没法让其他的类去实现。
29、abstract 修饰的类中可以有抽象方法和一般方法。
30、任何在interface里声明的interface variable (接口变量,也可称成员变量),默认为public static final。
31、匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。
32、方法的变量不可以有修饰符。
33、方法中的内部类不可以有修饰符,但这种内部类的前面可以使用final或abstract修饰符。方法体外面定义的内部类的访问类型可以是public,protecte,默认的,private等4种类型。
34、native 修饰的方法一般使用来跨操作系统的,所有不能用来修饰abstract 方法。
35、JMS:Java  Message  Service  Java消息服务  
    JNDI:Java  Naming  and  Directory  Interface  Java命名目录接口  
    RMI:Remote  Method  Invocation  远程方法调用   
    JTA:Java  Transaction  API  Java事务API  
    JTS:Java  Transaction  Service  Java事务服务
    POJO:Proterozoic  Java  Object  Java原生对象
    SOAP:Simple  Object  Access  Protocol  简单对象访问协议  
36、 静态方法只能调用静态的成员变量或静态的方法;非静态方法没有这个限制。
37、静态成员不能访问非静态成员;非静态成员可以访问静态成员。
38、内部类自动拥有对其外围类所有成员(方法、属性)的访问权。如果内部类和外部类成员的名字完全相同,在内部类方法中要访问外部类成员,则需要使用下面的方式来访问:外部类名.this.外部成员名,
39、1.子类中的方法与父类中的方法有相同的返回类型(或者返回类型是父类返回类型的子类)
    2.子类中的方法与父类中的方法有相同的方法名称
    3.子类中的方法必须和父类中的方法有相同的参数列表
    4.子类中的方法的访问级别不能低于父类中该方法的访问级别(举例:父类方法级别是protected,那么子类重写该方法,访问级别必须是protected或者public,一定和父类的访问级别相同或更宽,否则编译无法通过)
    5.子类中方法抛出的异常范围不能大于父类中该方法抛出异常的范围(子类不抛出异常也满足该原则或者父类未抛出异常而子类抛出RuntimeException这也是可以的的!
40、1 getCurrentSession创建的session会和绑定到当前线程,而openSession不会。
    2 getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭
41、finally中的代码比return和break语句后执行。

42、Java 加载Properties文件的六种方式  

1。使用java.util.Properties类的load()方法
示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name));
Properties p = new Properties();
p.load(in);

2。使用java.util.ResourceBundle类的getBundle()方法
示例: ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());

3。使用java.util.PropertyResourceBundle类的构造函数
示例: InputStream in = new BufferedInputStream(new FileInputStream(name));
ResourceBundle rb = new PropertyResourceBundle(in);

4。使用class变量的getResourceAsStream()方法
示例: InputStream in = JProperties.class.getResourceAsStream(name);
Properties p = new Properties();
p.load(in);

5。使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法
示例: InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name);
Properties p = new Properties();
p.load(in);

6。使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法
示例: InputStream in = ClassLoader.getSystemResourceAsStream(name);
Properties p = new Properties();
p.load(in);

补充

Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法
示例:InputStream in = context.getResourceAsStream(path);
Properties p = new Properties();
p.load(in);


你可能感兴趣的:(2013 1月-3月第一次求职过程中的总结)