-
十进制100转换成八进制是多少
参考答案 100 = 1*(8*8) + 4*(8) + 4*(1) 八进制:144 Java中八进制数必须以0开头,0144 以上,是Java面试题【十进制100转换成八进制是多少】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点补充~ ---end---...- 220
-
私有方法能被重载或者重写吗
参考答案 私有方法能重载,但是不能重写。 1. 重载 是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。例如: public class Dog { private void bark(){//bark()方法是重载方法 } private void bark(int a){//bark()方法是重载方法 } } 2. 重写 类与子类之间的多态性,对父类的函数进行重新定义…...- 176
-
存在i+1< i的数吗
参考答案 存在,例如:Integer.MAX_VALUE 实例: public class TestMaxValueAddOne { public static void main(String[] args) { int i = Integer.MAX_VALUE; System.out.println(i+1<i); System.out.println(i+1); } } 结果: tr…...- 149
-
@Deprecated注解的作用
参考答案 1. @Deprecated注解的作用 注解@Deprecated可以标记Java API状态,表示API已过时和不被推荐使用。 如果使用或执行代码重写,会被编译器发出警告,或被IDE的语法检查做黄色的警告。 2. @Deprecated注解的使用场景 之前存在的类,由于以下原因,现在不再继续使用了,但又不确定后期是否会重新使用,就先用@Deprecated注释着,后期依据新的业务/…...- 139
-
Java日期格式中YYYY与yyyy的区别?
参考答案 1. 区别 JDK6的SimpleDateFormat只有小“y”,没有大“Y”,yyyy代表year。 JDK7引入了大“Y”,表示Week year。Week year意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。例如,2017年12月31日,本周(2017年12月31日-2018年1月6日),本周跨年了,就进入了下一年。 2. 实…...- 132
-
怎么理解Java中的类型提升
参考答案 类型提升:指在多种不同数据类型的表达式中,类型会自动向范围表示大的值的数据类型提升。 例如: long count = 100000000; int price = 1999; long totalPrice = price * count; price 为 int 型,count 为 long 型,运算结果为 long 型,运算结果正常,没有出现溢出的情况。 以上,是Java面试题【怎…...- 101
-
静态方法可以被继承吗
参考答案 java中静态属性和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏.。 原因: 静态方法和属性是属于类的,调用时直接通过类名.方法名完成,不需要继承机制即可调用。如子类中定义了静态方法和属性,此时父类的静态方法或属性称之为"隐藏"。如想要调用父类的静态方法和属性,直接通过父类名.方法或变量名完成,至于是否继承,子类是有继承静态方法和属性,但跟实例方…...- 97
-
char型变量可以存储一个中文汉字,为什么?
参考答案 char型变量可以存储一个中文汉字。 原因: char型变量是用来存储Unicode编码的字符的,java采用unicode编码,而unicode编码字符集中包含了汉字。 unicode编码占用两个字节,2个字节(16位)来表示一个字符, 无论是汉字还是数字字母,或其他语言,char类型的变量也是占用两个字节。 特殊情况:如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这…...- 95
-
main方法可以被重写和重载吗
参考答案 main方法可以重载,不能重写。 1. 重载 是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。 2. 重写 类与子类之间的多态性,对父类的函数进行重新定义。在子类中定义某方法与其父类有相同的名称和参数。 实例: public class Dog { private void bark(){//bark()方法是重载方法 } private void b…...- 93
-
为什么重写equals,就要重写hashCode
参考答案 本篇深入解析:为什么重写equals,就要重写hashCode? 1. equals方法 Object类中默认的实现方式是:return this ==obj ,即:只有this和obj引用同一个对象,才会返回true。 但是,实际上我们需要用equals来判断 2个对象是否等价,而非验证他们的唯一性,在实现自己的类时,就要重写equals。 按照约定,equals需要满足以下规则。 自…...- 92
-
| 和 || 的作用,以及区别
参考答案 |:整数的或运算符;逻辑或,| 两边的表达式都会进行运算。 ||:短路或,|| 左边的表达式结果为 true 时,|| 右边的表达式不参与计算。 实例: public class TestOr { public static void main(String[] args) { int x = 10; int y = 9; if (x == 10 | ++y > 9) { } Sy…...- 85
-
Java的垃圾回收机制是什么,以及特点
参考答案 垃圾回收机制的概念: 垃圾回收(Garbage Collection),简称GC。 采用垃圾回收机制,可释放垃圾占用的空间,防止内存泄露,有效的使用可以使用的内存,对内存堆中已经死亡的、或者长时间没有使用的对象进行清除和回收,以提高编程效率,保护程序的完整性。 垃圾回收机制的特点: JVM 有多种垃圾回收 实现算法,表现各异; 回收 JVM 堆内存里的对象空间,不负责回收栈内存数据; 无…...- 76
-
字符串分割有哪些方式
参考答案 字符串分割的三种方式: 1. 使用split()方法 用split()方法实现最方便,但是效率比较低。 2. 使用StringTokenizer类分割字符串 StringTokenizer类的效率很高,它是JDK中提供的专门用来处理字符串分割子串的工具类。 StringTokenizer类构造函数: public StringTokenizer(String str,String del…...- 75
-
接口为什么新增了默认方法和静态方法
参考答案 1 . 接口默认方法和静态方法 前往查看:接口默认方法和静态方法是什么 2. 为什么要有默认方法 一个常见的业务场景:很早写好的接口,由于后期各种业务问题要进行修改。 新增前:在 Java 8 之前,如果要在一个接口中添加一个抽象方法,那所有的接口实现类都要去实现这个方法,不然就会编译错误,而某些实现类根本就不需要实现这个方法,也被迫要写一个空实现,改动很大。 新增后:只要在一个接口添加…...- 75
-
2*8最有效率的计算方法是什么
参考答案 2*8最有效率的计算方法是:位运算 2 * 8 = 2 << 3 将一个数左移n位就相当于这个数乘以2的n次方,2 * 8只要将其向左移动3位即可。 这属于位运算,由处理器直接运算,效率高。 以上,是Java面试题【2*8最有效率的计算方法是什么】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点补充~ ---end---...- 70
-
System.out.println(‘a’+1);的结果
参考答案 打印 98。 解析: 'a' 是 char 型;1 是 int 型。 int 与 char 相加,char 会被强转为 int 型,char 的 ASCII 码值是 97,加一起等于 98。 以上,是Java面试题【System.out.println('a'+1);的结果】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知…...- 66
-
如何让计算机最高效的算出2乘以8
参考答案 2 <<3 解析: 位运算符 <<,是将一个数左移 n 位,相当于乘以了 2 的 n 次方; 一个数乘以 8 只要将其左移 3 位即可; CPU 直接支持位运算,效率最高。 补充: 当这个数接近Java基本整数类型的最大值时,左移位运算可能出现溢出,得出负值。 以上,是Java面试题【如何让计算机最高效的算出2乘以8】的参考答案。 输出,是最好的学习…...- 65
-
如何跳出Java中的多层嵌套循环
参考答案 跳出Java中的多层嵌套循环的两个方法: 方法一:用break+label的语法,跳出Java中的多层嵌套循环。 实例: public class test { public static void main(String[] args) { String[] s1={"1","2","3","…...- 63
-
void和Void有什么区别
参考答案 void:void关键字表示函数没有返回结果,是java中的一个关键字。 Void:Void是void的包装方法,和其他基础类型的包装方法不同是Void不能被实例化,Void还可用于一直返回null的方法或者返回null的泛型。 以上,是Java面试题【void和Void有什么区别】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点补充~ ---end---...- 63
-
Oracle JDK和OpenJDK有啥区别
参考答案 1. 授权协议的不同 OpenJDK采用GPL V2协议发布,而JDK则采用JRL协议发布。 两个协议虽然都是开放源代码的,但在使用上不同,GPL V2允许在商业上使用,而JRL只允许个人研究使用。 2. OpenJDK只包含最精简的JDK OpenJDK不包含其他的软件包,例如:Rhino Java DB JAXP……,并且可以分离的软件包,也都是尽量的分离,但是大多数都是自由软件…...- 61
-
0.1+0.2=0.3正确吗
参考答案 这个问题偶尔会问到,主要考查面试者对JavaScript的数值的理解程度。 在正常的数学逻辑思维中,0.1+0.2=0.3,是正确的。 在JavaScript中,0.1+0.2 !== 0.3,是不正确的。 原因: 在JavaScript中,采用IEEE 754的双精度标准,计算机内部存储数据的编码的时候,0.1在计算机内部不是精确的0.1,而是一个有舍入误差的0.1。 当代码被编译或解…...- 60
-
shorts1=1;s1=s1+1;有错吗
参考答案 是错误的。正确写法:s1= (short) (s1+1)。 题目解析: s1+1,s1是short类型,1是int型,s1会自动转换为int型的1,与1相加后,得到int型的2,要向左侧的short类型的s1看齐,需要通过强制类型转换。 参考Java的基本数据类型转换规则,大的数据类型转换为小的数据类型,需要强制转换,反之,可以自动转换。 赋值表达式等号两侧的转换的规则是,右侧的向左侧的…...- 59