
本文共 4275 字,大约阅读时间需要 14 分钟。
目录
1 lambda表达式
lambda表达式是jdk8的新特性,出现的目的是为了简化集合的遍历。简化遍历的是Stream流.
单列集合:List、Set
双列集合:Map
(1)遍历List集合
(temp)充当临时变量用于接收集合元素,为了实现父类接口的对应的方法,一般使用lambda表达式接口中只有一个对应参数的方法,不能重复参数重复不能使用.
相当于给接口中的一个方法,方法不能参数
(2)遍历Map集合
2 equals与”==”的区别
3 声明4个变量Integer i =127,j=127,m=128,n=128;请问”i==j”与”m==n”的结果为什么?
4 如何跳出多重for循环
带标签的结束break结束到固定位置.
5 native修饰符是什么意思?
native代表java访问其他语言编写的代码。
6 &与&&的区别
&&:逻辑与、短路与
语法规则:条件1 && 条件2,条件1与条件2同时为true的时候最终结果才为TRUE,否二全部为false
特点:&&当条件1为false的时候,条件2不会执行
&:语法:条件1 & 条件2
特点:条件1与条件2都会执行
7 什么是强制(显示)类型转换、隐式类型转换
将大的数据类型赋值小的数据类型称之为强制类型转换,会出现精度的损失
将小的数据类型赋值给大的数据类型:隐式类型转换
8 jvm、jre、jdk的区别
Jvm:java虚拟机,用于保证java的跨平台特性。
Jre:java的运行环境,包含jvm+lib(jar包)
Jdk:java的开发工具,包含jre+开发工具
9 静态变量、静态代码块、静态方法、构造方法的执行顺序
执行顺序是:静态变量-->静态代码块--->静态方法-->构造方法
10 单例设计模式
什么是单例:永远只能够创建一个对象
单例设计模式书写方式总共是有两种:饿汉式、懒汉式
书写单例设计模式的语法规则:
- 类中的构造方法私有
2.需要提供一个公共的获取对象的方法
饿汉式单例设计模式:(好比人很饿,需要提前备好饭,这里的饭就是对象)
final修饰的话不可变,永远都是内个对象.
懒汉式单例设计模式: (懒汉就是饿了才会想起来做饭,饭就相当于创建对象)
线程的抢占会跑入这个判断,会创建多个对象,成为多例
11 String、StringBuffer、StringBuilder的区别?
String:当字符串频繁的被修改时,会在内存中不停的开辟空间,容易造成内存空间的浪费,当做字符串拼接的时候其实底层也是StringBuilder.
StringBuffer与StringBuilder当字符串不停的被修改时,一直使用的是同一个内存空间
StringBuffer在多线程是线程安全的
StringBuilder在多线程中会出现线程安全问题,在单线程中效率比StringBuffer效率要高
12 ArrayList与LinkedList的区别?
ArrayList底层是数组(Object类型的数组),LinkedList底层是链表
由于ArrayList底层是数组,因此它查询数据很快,但是对数据的增删比较慢;LinkedList查询很慢,但是增删很快
13 HashMap与Hashtable的区别?
1.HashMap与Hashtable底层都是Hash表
2.HashMap是jdk1.5之后出现的版本;Hashtable是jdk1.5之前出现
3.Hashtable是线程安全的,HashMap是线程非安全的
4. HashMap的key与value可以为null,但是Hashtable的key与value不能够为null
14 什么是编译时异常?什么是运行时异常?
15 常见的加密算法有哪些,详细解释其中一种?
常见的算法:DES、AES、RSA、Base64、MD5
16 标识符命名规则
可以由数字、字母、下划线(_)、$进行组合,不能够以数字作为开头
合法的命名:a1、_abc(不推荐)、abc$
17 Java中的数据类型
18 java语言的三种技术架构
J2ME:小型版本,是为开发电子消费产品和嵌入式设备提供的解决方案。手机
J2SE:Java标准版,集合、多线程、面向对象啊等
J2EE:企业版,jsp、servlet等
19 重载与重写的区别
重载:同一个类中多个方法的名字一样,但是参数的类型、参数的个数等不同
重写:子类中的方法与父类中的方法一样
20 内存结构
栈内存:用于存储局部变量,当数据使用完,所占用的空间会自动释放
堆内存:数组和对象,通过new建立的实例都存放在堆内存中
方法区:静态成员、构造函数、常量池、线程池
本地方法区:window系统占用
21 谈一谈面向对象思想
什么是面向对象:面向对象是相对于面向过程而言的,面向过程强调的是功能,面向对象强调的是将功能进行封装。面向对象是java核心思想,这个思想来源于我们人的实际生活
面向对象的3大基本特征:封装(private)、继承(extends)、多态
22 成员变量与局部变量的区别
成员变量:直接放置在类中的变量称之为成员变量,与方法是平级关系。
局部变量:在方法体中声明的变量
成员变量与局部变量的区别:
1 作用域:成员变量针对整个类有效;局部变量在某个范围内有效(方法、循环体)
2 存储位置:成员变量随着对象的创建而存在,对象消失时成员变量就会消失,存储在堆内存中;局部变量在方法被调用,或者语句被执行的时候存在,存储在栈内存中。
3 初始值:成员变量有默认的初始值(类类型的初始值为Null,基本数据类型有各自特有的默认值)
23 静态变量和成员变量的区别
1 调用方式:静态变量也称之为类变量,可以直接通过类名来调用。也可以通过对象名来调用
2 存储位置:静态变量存储在方法区中的静态区域;成员变量存储在堆内存中
3 生命周期:静态变量随着类的加载而存在,随着类的消失而消失,生命周期很长;成员变量随着对象的创建而存在,当对象消失时成员变量随之消失
4 与对象的相关性:静态变量是所有对象共享的数据;成员变量是每个对象特有的
24 什么是匿名对象?匿名对象的应用场景?
什么是匿名对象:没有名字的对象,是对象的一种简写形式
匿名对象的应用场景:1、可以作为实际参数在方法传递中使用 2、只调用类中的一次方法
25 手写JDBC代码(*)
什么是JDBC:Java数据库连接
26 this关键字与static关键字
this关键字:代表的是本类对象的一个引用,谁调用this所在的方法,this就代表的是谁
Static关键字:用来修饰成员变量与成员方法
静态的特点:
随着类的加载而加载
优先与对象存在
对所有的对象共享
可以被类名直接调用
27 普通类、抽象类、接口之间相关面试题(*)
普通类:没有抽象的方法
抽象类:抽象类中可以有抽象方法,也可以一个抽象方法都没有
接口:1、接口中所有的方法都为抽象方法(public abstract修饰) 2、接口中所有的变量必须被public static final修饰
普通类是否可以继承抽象类:可以
普通类是否可以实现接口:可以
抽象类是否可以继承普通类:可以
抽象类是否可以继承抽象类:可以
抽象类是否可以继承接口:可以
接口是否可以继承普通类:不可以
接口是否可以继承抽象类:不可以
接口是否可以继承接口:可以
总结:接口不可以继承/实现任何类
28 什么是多态?多态发生的条件
什么是多态:指同一个对象,在程序不同时刻的多种运行状态。
多态发生的条件:
声明类型与实际类型不一致
子类重写父类中的方法
29 四种访问修饰符的访问权限
30 Properties类(*)
Properties类主要用来操作.properties配置文件
31 final关键字
final是一个修饰符,可以修饰类、变量、方法。
final修饰类时:当一个类被final修饰时,此类不能够被其他的类继承
final修饰变量时:变量就成为了一个常量
final修饰方法时:此方法不能够被子类重新
Arrays、Math、Random等常用工具类
32 Arrays工具类:主要用来操作跟数组相关的
Math工具类:主要是操作跟数学相关
常见的方法:abs(参数)、pow(2,3)
Random工具类:随机数
33 instanceOf关键字(*)
作用:用于判断某个对象是否是某个类型
语法:对象名 instanceOf 子类(实现)名,返回值为boolean
34 可变参数
可变参数是jdk1.5的新特性。
35 多线程相关面试题(*)
什么是进程:正在进行的程序。
什么是线程:进程内部的一条执行路径或者一个控制单元
实现线程的几种方式:1、让普通类继承Thread类 2、让普通类实现Runnable接口
run与start方法的区别:run方法存放线程需要执行的代码块;start方法用于启动线程
如何保证线程安全:将多个线程操作的共享对象用锁锁起来
36 字节流与字符流区别(*)
常见的字节流:
常见的字符流:
区别:
当读取纯文本文件(只有文字字符)时,使用字符流比较方便
当读取图片、视频、音频时需要使用字节流
37 什么是序列化
什么是序列化:对象最开始是不能够直接保存到磁盘中,如果需要将对象保存到磁盘中时,需要让对象实现序列化。
如何让对象实现序列化:1、让对象实现Serializable接口 2、生成序列号
38 反射
Class类是反射的根基,Class对象代表的是某一个类编译后的字节码文件(.class文件)。
创建Class类对象的三种方式:
Class.forName(“类的全路径名”);
类名.class
对象名.getClass();
39 xml
xml:目前主要用来做配置文件(springMVC、Spring、Mybatis、Hibernate、Struts2等)
xml的约束文件:dtd、xsd
解析xml文件的几种方式:dom解析(占用内存,前后反复遍历)、sax解析(节省内存,只能向后遍历数据)
40 网络编程(*)
协议:
TCP协议:3次握手(第1次:我问你在么?第2次:你回答 第3次:我反馈我知道你在)
UDP协议:将数据及源和目的封装成数据包,不需要建立连接
HTTP协议:超文本传输协议
发表评论
最新留言
关于作者
