面试题
Fighting_mjtao
这个作者很懒,什么都没留下…
展开
-
Equals与==区别
public class EqualsTest { public static void main(String[] args) { String str = "string";//放入常量池中 String str2 = "string"; String str3 = new String("str"); String st...原创 2018-07-25 19:15:56 · 103 阅读 · 0 评论 -
HashMap的key重复,那么value会被覆盖吗?
package cn.sdut.mydemo;import java.util.HashMap;public class HashMapDemo{ public static void main(String[] args) {// demo01(); demo02(); } private static void demo02() ...原创 2018-08-04 21:07:55 · 26953 阅读 · 10 评论 -
Math.round()ceil() floor()
Math类中提供了三个与取整有关的方法:ceil()、floor()、round(),这些方法的作用与它们的英文名称的含义相对应,1、ceil的英文意义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11;2、floor的英文意义是地板,该方法就表示向下取整,Math.ceil(11.6)的结果为11,Math.ceil(-...原创 2018-08-06 23:14:59 · 115 阅读 · 0 评论 -
switch的使用情况
JDK5之前,switch里面的表达式只能是byte、short、char、int。从java5之后添加了enum类型,从java7开始开始支持String类型,但是不支持long类型,因为编译器是有限状态机...原创 2018-08-06 23:14:45 · 140 阅读 · 0 评论 -
Integer对象数值比较问题
public class IntegerTest { public static void main(String[] args) { Integer i = 100; Integer i2 = 100; Integer i3 = 130; Integer i4 = 130; System.out.printl...原创 2018-08-06 23:14:28 · 159 阅读 · 0 评论 -
为什么子类重写equals()方法后要重写hashCode()方法
因为在比较两个对象相等的时候,可以通过先hashCode()方法比较,如果hashCode()方法比较后,如果不相等,则可以判断这两个对象不相等,如果hashCode()方法比较后相等,则进入equals()方法进行比较,如果结果是相等,两个对象相等,否则不相等。也就是说:hashCode相等,两个对象不一定相等;两个对象equals后相等,则两个对象的hashCode一定相等。...原创 2018-08-01 18:50:35 · 952 阅读 · 0 评论 -
内存的划分
1、寄存器2、方法区3、栈:存储的都是局部变量,而且变量所属的作用域一旦结束,该变量就会自动释放。4、堆:存储的是数组和对象(其实数组就是对象),凡是new出来的都是建立在堆中。 特点:(1)每一个实体都有首地址 (2)堆内存中的每一个变量都有默认初始化值,根据类型的不同而不同。 ...原创 2018-08-06 23:18:13 · 169 阅读 · 0 评论 -
静态代码块、构造代码块、构造方法的执行顺序
静态代码块>构造代码块>构造方法继承:Father.class ->Son.class ->Father Instance ->Son Instancepackage com.atguigu;class Father{ static { System.out.println("Father 静态代码块"); } { System.ou...原创 2018-10-15 16:10:14 · 137 阅读 · 0 评论 -
同步方法与静态同步方法各自的锁对象是谁
一个对象里面如果有多个synchronized方法,某一个时刻内,只要一个线程去调用其中的一个synchronized方法了,其它的线程都只能等待,换句话说,某一个时刻内,只能有唯一一个线程去访问这些synchronized方法锁的是当前对象this,被锁定后,其它的线程都不能进入到当前对象的其它的synchronized方法加个普通方法后发现和同步锁无关换成两个对象后,不是同一把锁了,...原创 2018-10-15 17:01:32 · 6860 阅读 · 3 评论 -
二叉树的层次遍历
层次遍历的步骤是:1.对于不为空的结点,先把该结点加入到队列中2.从队中拿出结点,如果该结点的左右结点不为空,就分别把左右结点加入到队列中3.重复以上操作直到队列为空class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}pub...原创 2018-12-10 09:33:01 · 151 阅读 · 0 评论 -
TCP 详解
---------------------作者:rugu_yer来源:CSDN原文:https://blog.csdn.net/sinat_36629696/article/details/80740678版权声明:本文为博主原创文章,转载请附上博文链接!TCP协议TCP协议全称: 传输控制协议, 顾名思义, 就是要对数据的传输进行一定的控制.先来看看它的报头我们...转载 2019-03-06 15:22:26 · 210 阅读 · 0 评论 -
排序
冒泡排序//冒泡排序 for(int out=arr.length-1; out>1; out--) { for(int in=0; in<out; in++) { if(arr[in] > arr[in+1]) { int temp = arr[in]; arr[in] = arr[in+1]; arr[in+1] = te...原创 2018-07-30 21:50:29 · 107 阅读 · 0 评论 -
抽象类和接口的异同
1、相同1、不能实例化2、如果继承某个抽象类或者实现某个接口,需要实现所有的抽象方法,否则该类仍是抽象来。2、成员区别 抽象类:(1)成员变量:变量和常量都可以 (2)成员方法:抽象方法和非抽象方法都可以 (3)构造方法:可以有 ...原创 2018-07-27 09:48:43 · 193 阅读 · 0 评论 -
String的一些问题
1、String类不可被继承,因为String类是final类。源代码:public final class String implements java.io.Serializable, Comparable<String>, CharSequence {...}2、String str = "hello"; str = str + "world";原始的Strin...原创 2018-07-25 19:17:12 · 200 阅读 · 0 评论 -
this关键字
this:当前类对象的引用作用:1、this. 可以调用成员变量和成员方法(不加this同样可以调用)2、可以在构造函数中通过this()调用无参构造方法、this(name,age) 调用前面已有的有参构造方法3、区分成员变量与局部变量重名的情况注意:当调用构造方法的时候,this()必须放在该方法的第一行。 public class Fruit { private Str...原创 2018-07-25 19:18:12 · 137 阅读 · 0 评论 -
成员变量与局部变量、静态变量的区别
成员变量和局部变量的区别* A:在类中的位置不同 * 成员变量:在类中方法外 * 局部变量:在方法定义中或者方法声明上* B:在内存中的位置不同 * 成员变量:在堆内存(成员变量属于对象,对象进堆内存) * 局部变量:在栈内存(局部变量属于方法,方法进栈内存)* C:生命周期不同 * 成员变量:随着对象的创建而存在,随着对象的消失而消失 * 局...原创 2018-07-25 19:19:34 · 919 阅读 · 1 评论 -
代码块的运行顺序
class Student { static { System.out.println("Student 静态代码块"); } { System.out.println("Student 构造代码块"); } ...原创 2018-07-25 19:20:39 · 376 阅读 · 2 评论 -
构造方法
构造方法格式特点 * a:方法名与类名相同(大小也要与类名一致) * b:没有返回值类型,连void都没有 * c:没有具体的返回值return;构造方法的重载及注意事项 * 构造方法的重载 * 重载:方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表 * 构造方法注意事项 * a:如果我们没有给出构造方法,系统将自动提供一个无...原创 2018-07-25 19:21:39 · 124 阅读 · 0 评论 -
如何跳出for的多重循环
在for循环前面添加标记,然后在break后面追加标记public class BreakTest2 { public static void main(String[] args) { int a = 3; Here:for(int i=0;i<5; i++) {//跳出最外层循环i System.out.println...原创 2018-08-06 23:16:09 · 1449 阅读 · 0 评论 -
Iterator背后的实现原理
public class CollectionTest2 { public static void main(String[] args) { Collection<Student> collection = new ArrayList<Student>(); Student student = new Student("aaaa...原创 2018-07-28 23:12:33 · 490 阅读 · 0 评论 -
HashSet保证元素唯一性原理
使用Set集合都是需要去掉重复元素来保证元素的唯一性如果在存储的时候逐个equals()比较, 效率较低,哈希算法提高了去重复的效率, 降低了使用equals()方法的次数 当HashSet调用add()方法存储对象的时候, 先调用对象的hashCode()方法得到一个哈希值, 然后在集合中查找是否有哈希值相同 的对象 如果没有哈希值相同的对象就直接存入集合 如果有哈希...原创 2018-07-29 10:17:20 · 319 阅读 · 0 评论 -
内部类的创建对象等问题
package cn.sdut;/* * 非静态内部类对象的创建需要依赖外部类 * new Outer().new Inner(); * 静态方法中没有this,也就是没有外部类对象,所以编译错误 * 普通方法里面有this,也就是 this.new Inner(); */public class Outer { public static void main(Strin...原创 2018-07-29 11:39:18 · 701 阅读 · 0 评论 -
方法重载(overload)和方法重写(override)的区别
方法重载(overload)和方法重写(override)的区别 方法重载和方法重写都是实现多态的方式,区别在于、方法重载实现的是编译时的多态 方法重写实现的是运行时的多态 重载发生在一个类中,同名的方法有不同的参数列表(参数类型不同、参数个数不同或者两者都不同),与返回类型无关 重写发生在子父类之间,重写要求子类被重写的方法必须与父类被重写的方法一致,返回类型也要一...原创 2018-07-27 09:31:37 · 570 阅读 · 0 评论 -
JAVA 复习面试github地址
https://github.com/Snailclimb原创 2019-03-07 14:29:11 · 670 阅读 · 0 评论