1,接口(不实现任何方法)——》抽象类(实现部分公共方法)——》简单实现类——》具体实现类

2,抽象类不能被直接实例化,只能实现抽象方法,以匿名内部类的方式表现。

3,如果static是写在单例中,高并发访问是会出问题的,这时候就要设置线程等待了,static是在容器加载的时候就已经加载到内存中,所以static方法和变量不宜过度使用,有选择的使用,

4,&和&&都是逻辑运算符,都是判断两边同时真则为真,否则为假;但是&&当第一个条件不成之后,后面的条件都不 执行了,而&则还是继续执行,直到整个条件语句执行完为止。如&&例子中的i++>5被执行了,而i++<9并没有 被执行,这就是他们的差别。&例子中的i++>5和i++<9都被执行了。

      &还可以用作位运算符,0x31&0x0f=0x01

===> 0011 0001 & 0000 1111  = 0000 0001  即0x01

5,java中"=="和"equal"的区别。

  • str == null和null == str 区别在于前者你少写个等号是赋值不会报错后者会报错
  •   "".equal可以回避空指针异常
  • ==比较的是地址,equals比较的是值
  1. equals 是比较的两个字符串是否一样 ,比如 “asd”.equals(“asd”)==true;
  2. "==" 它比较的是两个“引用” ,比如: String a=new String ("a"); String b=new String ("a"); System.out.println(a==b)它就输出false了。

    因为不是一个引用(虽然都是a);

  3. String a=new String ("abc");至少创建一个对象a;a是肯定会被创建的。如果内存里没有"abc"字符串对象就创建一个,否则不创建。

6,final、finally、finalize的区别

final是一种声明属性,作用与类、方法和变量;final修饰的变量的值不能够再改变,final修饰的方面不能被覆盖,final修饰的类不能被继承。

finally是异常处理语句的一部分,表示总是执行。

finalize是object类的一个子方法,在垃圾回收器执行是调用回收对象的此方法,此方法可以被覆盖提供资源回收时的其他资源回收。如文件关闭等

7,int是java的基本数据类型,Integer是java为int提供的封装类,用于在各种类型间转化

8,sleep()和wait()的区别

  1,sleep是thread的方法,会释放对象锁,当指定的时间到了又会自动恢复运行状态。wait()是object的方法,不会释放锁,且只有调用notify()方法后本线程才进入对象锁定池准备获取对象锁进入运行状态。

9,静态代码块,代码块,构造函数

1,静态代码块:只会运行一次,无论new多少个对象,都只执行一次

2,代码块:new每个对象,都会执行这个代码块

3,构造函数:new每个不同的对象,针对性的执行。比如有参数,无参的,参数不同的。

10,java对象的创建过程

1,创建虚拟机进程,然后虚拟器用类加载器Class Loader加载.class文件到方法区。

2,类加载完成后,主线程运行static main()时在虚拟机栈中建栈帧,压栈;执行到new Object()时,在堆heap里创建对象

3,执行类的构造函数初始化

4,new运算符 返回堆中这个对象的引用。

11,throws和throw的区别

1、throws出现在方法函数头;而throw出现在函数体。

2、throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常对象

12,try {}里有一个 return ,紧跟着在这个try之后的finally{}会不会被执行?

——会,在return过程中执行。解释:在执行return语句时,要返回的结果已经准备好了,并会把结果放在另外一个局部变量中。此时,程序转到finnaly执行,执行后再把存在这个变量中的结果取出返回。所以如果finally中修改了返回结果,但实际上返回结果不会变。应该是使用栈保存的返回值。

13,堆:存放所有new出来的对象。栈:对象的引用。常量池:存放基本类型常量和字符串常量。

14,反射:

1,反射机制指的是程序在运行时能够获取自身的信息,实现动态创建对象和编译,比较灵活。缺点是对性能有影响。

2,.class-->.java

3,通过反射机制访问java对象的属性,方法。

依赖注入:在运行期,由外部容器spring动态地将依赖对象注入到组件中

控制反转:spring容器初始化,创建并管理bean对象,以及销毁它




最新文章

  1. 消息队列之ZeroMQ(C++)
  2. CAS示例环境部署及配置
  3. linux 下解压rar文件
  4. 读书笔记_Effective_C++_条款四十六:需要类型转换时请为模板定义非成员函数
  5. 文件“D:\file.txt”正由另一进程使用,因此该进程无法访问该文件。
  6. 用scheme语言实现SPFA算法(单源最短路)
  7. SQL Server2008 列名显示无效
  8. 我的第一个chrome扩展(2)——基本知识
  9. 解决数据标准及质量AppScan(测试)安全性问题相关方法
  10. Matlab单元(Cell)数据的应用
  11. js自定义的简易滚动条
  12. 简单总结下关于blob的图片上传
  13. eclipse导入java工程
  14. ES6之Object.assign()详解
  15. GRAPH ATTENTION NETWORKS
  16. 概率DP HDU 4586 play the dice
  17. ngx_lua配置及应用
  18. Java LinkedHashMap 逆序遍历
  19. 最近玩了一下qt5.2.1,顺着写点东西,关于这个版本设置程序主窗口居中
  20. FTP服务器配置

热门文章

  1. [转载]linux下编译php中configure参数具体含义
  2. 最受欢迎的Web开发工具
  3. iOS 开发问题集锦(三)
  4. 在Visual Studio 2012中使用VMSDK开发领域特定语言1
  5. MVC3.0+knockout.js+Ajax 实现简单的增删改查
  6. 创建简单的响应式HTML5模版
  7. 跨站请求伪造(Cross Site Request Forgery (CSRF))
  8. MVVM与Knockout
  9. 定义文件XML——从简单开始
  10. [ios]iphone 获取UIWebView内Html方法