单例模式

  1. 分为饿汉模式和懒汉模式
  2. 实例步骤:
    -构造方法私有化
    -声明私有,静态对象
    -声明公有方法
  3. 饿汉模式:
    private Singleton(){

    }
    private static Singleton instanse=new Singleton();
    public static Singleton getInstanse(){
        return instanse;
    }
  1. 懒汉模式
private Singleton2(){}
    private static Singleton2 instanse;
    public static Singleton2 getInstanse(){
        if(instanse==null){
            instanse=new Singleton2();
        }
        return instanse;
    }
  1. 对比:
    -饿汉:类加载慢,运行时快;线程安全
    -懒汉:类加载快,运行时慢;线程安全

java面试1

1.switch语句能否作用在byte上,能否作用在long上,能否作用在String上?

在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。

2.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

对于short s1 = 1; s1 = s1 + 1;由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。

对于short s1 = 1; s1 += 1;由于 +=是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。

3.char型变量中能不能存贮一个中文汉字?为什么?

char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。补充说明:unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。
4.使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?

使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句:

final StringBuffer a=new StringBuffer(“immutable”);
执行如下语句将报告编译期错误:

a=new StringBuffer(“”);
但是,执行如下语句则可以通过编译:

a.append(” broken!”);

java基础补充

1.位运算符,是二进制运算:&,|,~,^

&:同时为1,结果为1
|:有一个为1,结果为1
~:0则1,1则0
^:不同为1,相同为0

2.反转比较:比如正面不好比较时,使用另一面比较。如判断是否奇数:if(i%2==1)改成if(i%2!=0),因为负奇数的存在

3.接2,判断奇偶使用二进制的最低位是1就是奇数,是0就是偶数:可使用位运算符&来计算奇偶,a&1 = 0 偶数 ;a&1 = 1 奇数

JDBC

jdbc1

1.加载驱动程序

a.添加驱动文件

b.添加驱动文件进入build path

c.使用Class.forName();反射

2.获得数据库连接

使用DriveManager.getConnection()

3.创建Statement对象:执行sql

通常使用PrepareStatement代替了