学习笔记面试问题1

学习笔记


JDK,JRE,JVM的关系
JDK java开发工具包JRE是JDK的一部分,JREjava运行环境,JRE由两部分组成JVM和类库

main方法被声明为privare会怎样
编译没有问题,执行时报错找不到main方法

&和&&的区别
&按位相与运算5&4为00000101&00000100 结果为00000100
&&为逻辑运算符,必须满足两个条件时才为true否则为flase

char能不能存储一个汉字?为什么?
char占两个字节,中文也占两个字节,因此可以,但是一个char不能存储两个汉字

a++和++a的区别
a++是先赋值再自增,++a是先自增再赋值

a+=b和a=a+b的区别
+=是赋值,a+b是算术运算,byte和short类型的数相加,都会提升为int类型

浮点型为什么会有精度丢失?怎么解决精度丢失?
当浮点数达到一定的大数时自动使用科学计数法。这样的表示只是近似真实数而不等于真实数。使用BigDecimal方法

在不使用第三个变量,交换两个数字
a=a+b; b=a-b; a=a-b;
a=a*b; b=a/b; a=a/b;
使用赋值运算符 a=b+(b=a)*0;

在java中如何跳出当前的多重嵌套循环
mark:
for(){
for(){
break mark;
}
}

String s = new String(“xyz”);创建了几个String Object
常量池在heap堆空间中,首先创建xx00->“xyz”,堆空间中xx01->new String(“xyz”);,stack栈空间中s=xx01;使用堆空间的引用,不创建新的对象

hashCode与equals的关系,为什么重写equals时必须重写hashCode(equals相等,hashcode一定相等,不重写默认使用Object的hashcode按地址内存经过哈希算法得来的)
hash是散列的意思,就是把任意长度的输入,通过散列算法变换成固定长度的输出,两个hash不同买两个hash值对应的原始输入必定不同
1.hashCode主要是为了提高散列结构存储中查找的效率
2.两个相等对象分别调用equals都会返回true
3.equals相等,hashcode一定相同
4.两个对象的hashcode相等,两个对象不一定相同,只能说明这两个对象在散列存储结构中,存放于同一个位置
5.因此,equals方法被覆盖过,hashcode方法也必须被覆盖
6.hashcode的默认行为是对堆上的对象产生独特值

求最大公约数和最小公倍数a,b(假设a>b)的最大公约数
最大公约数:
while(a%b>0)
a=a%b;
a和b交换;
直到a%b=0,最大公约数就为此时的b
最小公倍数:
a*b/(a和b的最大公约数)

发布了16 篇原创文章 · 获赞 1 · 访问量 417

猜你喜欢

转载自blog.csdn.net/qq_39898191/article/details/99710312