面试中自己被问到的问题 !!!!!!!!!!!简直崩溃

  • 创建线程有几种方式

1.(extends)继承thread类的子类(创建thread子类的实例,就是创建了线程),重写run方法体,调用线程对象的start()来启动该线程。(多线程各自完成自己的任务)

2.通过runnable接口创建线程,重写run()方法执行体,创建实例,作thread的target创建thread对象,调用线程对象的start()来启动该线程。(多线程共同完成一个任务)

3.(jdk1.5)覆盖写入callable接口实现多线程。

callable<String> callable =new mythread();

futuretask<String> futuretask = new futurettask<>(callable); 

thread m1 = new thread(futuretask);//创建线程对象

m1.start();//启动线程

4.线程池创建线程,使用executors类中的newfixedthreadpool(int num)创建线程池,调用线程池的execute() 执行runnable的接口的线程,用submit 方法来值callable 接口创建的线程。调用线程池的shutdown来关闭线程。

  • 单例模式手写代码

1.懒汉模式

private Singletion(){

//调这个方法来实现单利

}

public static (synchronized) Singletion getInstance (){ 、、同步锁加入是否实现线程安全

  if( instance == null ){

instance = new Singleition();

}

   return instance;

}

2.饿汉模式

private static final singleton instance = new singleton();

private Singletion(){

//调这个方法来实现单利

}

private static Singletion getinstance (){

 return instance;

}

  • static 静态修饰符(隐藏,保持变量内容持久,直接通过类就可以访问类的属性和方法,违反封装,除了utils ,别用static)

1.static 方法作为静态方法,不依赖任何对象就可以对其访问,静态方法不能访问类的非静态成员变量和非静态成员方法,但是非静态方法是可以访问静态方法和变量。

2.static 变量 也成静态变量,静态变量被所以对象共享,类加载才会被初始化,只有一个副本。

3.static 优化程序性能,static 可以放在任何地方,也可以有多个static ,类加载会按照顺序执行,并且执行一次。

4.类加载先加载静态变量,如果静态很多就按顺序加载。

  • spring中的注解用什么作用

spring 注解可以减少xml配置;它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。简化代码和配置 ,有助于增强程序的内聚性。而采用独立的 XML 配置文件,程序员在编

写一个功能时,往往需要在程序文件和配置文件中不停切换,这种思维上的不连贯会降低开发效率。

  • Arraylist的初始容量是0,如果创建时是10,以0.5倍的(扩容机制)增长策略。voctor 增长策略(扩容机制)是1倍。

  • int 基本数据类型的字节是4,long类型的有8个字节,char类型的数组也是8个字节

  • spring中 @resorty 和 @autowried 有什么区别,一个是按类型注入,一个是以名称set get 的方法来注入bean。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值