文章目录
- 1. java基础(1)
-
- 1.1 面向对象和面向过程的区别(记住)
- 1.2 Java 语言有哪些特点(记住)
- 1.3 JDK , JRE, jvm
- 1.4 字符型常量和字符串常量的区别(记住)
- 1.5 构造器 Constructor 是否可被 override(记住)
- 1.6 Java 面向对象编程三大特性:封装、继承、多态(掌握)
- 1.7 String 和 StringBuffer、StringBuilder 的区别分别是什么
- 1.8 在一个静态方法内调用一个非静态成员为什么是非法的(记住)
- 1.9 在java中,为什么要有无参数的构造方法,并说出应用场景?
- 2.0 接口和抽象类的区别是什么(掌握)
- 2.1 成员变量与局部变量的区别有那些(记住)
- 2.2 对象和引用关系
- 2.3 静态方法和实例方法有何不同(记住)
- 2.4 对象的相等与指向他们的引用相等,两者有什么不同?(记住)
- 2.5 == 与 equals(掌握)等,两者有什么不同?
- 2. javaweb(1)
- 3. ssm+springboot+springCloud(1.5)
- 4. 企业开发的项目: 技术说明(1.5)
- 5. 面试总结(3,4)
1. java基础(1)
1.1 面向对象和面向过程的区别(记住)
面向过程(C,C++(即是面向过程,又是面向对象),C#,.NET)
优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
缺点: 没有面向对象易维护、不易复用、不易扩展
面向对象(Java)
优点: 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护
缺点: 性能比面向过程低(性能: 执行程序所耗费时间)
实际的应用场景:
- 开发大型网络游戏: C语言
- 企业级项目: Java语言
1.2 Java 语言有哪些特点(记住)
-
面向对象(三大特点: 封装,继承,多态);
-
平台无关性( 不同平台(操作系统),不同的操作系统,安装的虚拟机不一样(解释和执行class文件));
-
可靠性;
-
安全性;
-
支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持);
自定义线程的方式有几种?
自定义线程池的方式有几种? -
支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java 语言不仅支持网络编程而且很方便,
比如:Socket, JavaFX网络编程框架(面试的强点比如: 美团,滴滴等),这里我有个项目,学习资料);
-
编译与解释并存;
1.3 JDK , JRE, jvm
- 从范围大小说:
- jdk: java开发环境
- jre: java运行环境
- jvm: java虚拟机(作用: 解释执行class字节码文件的)
结论: jdk包含jre,jre包含jvm
- 从内容来说来说
jdk主要包含三大部分 - java的核心命令: javac.exe(编译命令) java.exe(java运行命令)
- 核心jar: tools.jar , rt.jar(里面有c语言的文件)等等(jar包大部分都是class文件,不能直接阅读)
- 源码包: src.zip(sources.zip,里面都是java文件,可以直接阅读,对应的jar的class文件.)
- 比如: src.zip: A.java(直接阅读)-------------->define.jar: A.class(不能阅读)
1.4 字符型常量和字符串常量的区别(记住)
-
字符: 比如: char a = ‘a’; 在内存中占2个字节,char基本类型
-
字符串: 比如: String str=“abvvv”; 在内存中根据字符串的长度去判断占多少字节,String是引用类型
-
1.5 构造器 Constructor 是否可被 override(记住)
* 重写: 子类(子接口 )重写 父类(父接口)的方法
* 重载: 在类中,方法名称必须相同,方法的参数个数,参数类型不同, 与返回值无关
* 构造器 Constructor 不可以被重写
1.6 Java 面向对象编程三大特性:封装、继承、多态(掌握)
封装
封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不