Java面试,从我开始

Java面试,从我开始

基本数据类型

short 16位 2字节
int 32位 4字节
long 64位 8字节
char 16位 2字节
byte 8位 1字节
boolean 1位 1字节
float 32位 4字节
double 64位 8字节

do get 与do post 的区别

使用表单提交数据到服务器的时候有两张方式可共选择,一个是post一个是get。默认情况下是get。
区别:1.传输数据大小有区别 get一般只能传输1024字节;post无限制。
2.传输方式不同,get通过key-value的方式跟在url路径后传输,post通过http请求的附件传输
3.get传输数据安全性不高,post相对安全一些。
除了doget和dopost之外,还有doPut、doDelete、doTrace、doHead、doOptions等方式,但是极少使用

什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?

java虚拟机是能运行Java字节码的一种虚拟机进程;Java源代码被编译成Java虚拟机能够执行的字节码文件(.class文件)。正是因为java虚拟机的存在让java成为了与“平台无关的变成语言”。

JDK、JRE、JVM关系是什么 ?

JDK是Java的开发工具,包括开发所需要的编译,运行等开发工具以及JRE;
JRE是运行Java文件的环境,包括JVM以及其他的类库;
JVM是Java虚拟机,提供了Java字节码(.class文件)的运行环境;
简而言之:JDK包含JRE,JRE包含JVM。

什么是自动拆箱,装箱

自动拆箱和装箱就是基础类型和引用类型之间的转换,实现这个可以让基础类型转换成引用类型,进行实例化,即可以new一个对象,调用包装类中封装好的方法或者toString。

面向对象

面向对象是一种思想。世间万物皆对象,通过对象是获取事物的属性或者事物拥有的行为。Java就是一种面向对象编程的语言。
面向对象的四大特性:抽象,封装,继承,多态。
抽象是为了形成类,封装是为了保护类,继承是为了重用类,多态为了拓展类。

&与&&的区别

&按位与 &&逻辑与。&&是先短路在运算,即如果&&左侧为false,则不会对右边的逻辑再进行判断,当user.name() != null && !user.name().equals("")时若使用&进行判断,则会出现空指针异常。

什么是值传递,什么是引用传递

值传递是对基本型的变量而言得,传递的是值得副本,对副本进行改变不会影响原变量。
引用传递是对对象型的变量而言的,传递的是对象的地址的一个副本,而不是原对象本身。

是否可以在static环境中访问非static变量

在java中static变量是属于java类的,static变量在所有的实例中都是一样的;在Java虚拟机对类进行加载的时候,会对static变量进行初始化;非static变量是属于实例的,如果在static环境中不通过实例去访问非static变量会编译报错,因为变量还未创建,跟实例尚未关联。

HashMap与HashTable的区别

1.HashTable的方法是同步的,HashMap未经同步,所以在多线程中要手动同步HashMap。(HashTable线程安全,但是效率低;HashMap效率高,但是线程不安全)
2.HashTable不允许NULL值(key,value均不允许),HashMap是允许有null的(key,value均可以)。HashMap使用containsKey()方法判断是否存在某个键,而不使用get方法。
3.继承的父类不一样。并且HashTable继承的父类Dictionary已经被废弃使用了。
4.对外提供的接口不同,HashTable比HashMap多提供了elements()和contains()两个方法。
5.遍历方式的内部实现不同。两者都使用了Iterator。而Hashtable还使用了Enumeration的方式。
HashMap的Iterator是fail-fast迭代器。当有其他线程改变了HashMap的结构时会抛错Concurrent ModificationException。使用remove方法不会抛错。而Hashtable在JDK1.8以后才使用fast-fail的。
6.初始容量大小和每次的扩充容量大小不同。Hashtable默认大小为11,每次扩容大小是原来的2n+1;而HashMap是16,每次扩容是原来的2倍。原因是因为两者设计的侧重点不同,Hashtable的侧重点是哈希的结果更均匀(个数值为素数,取模结果均匀),使得哈希冲突减少。HashMap更加关注哈希的计算效率问题。在取模计算时,如果模数时2的幂,那么可以直接用位运算得到结果,所以将哈希表大小定为2的幂。HashMap为了解决哈希分布不均匀,就对hash算法进行了修改,导致两者计算hash值方式不同

本人主页多多留言互相学习

链接: link.

猜你喜欢

转载自blog.csdn.net/Karl_ben/article/details/83108085