2020 - 面试刷题 ING(java基础知识点巩固)

30 篇文章 0 订阅
5 篇文章 0 订阅

养成每年都去面试市场看看的好习惯很重要,看清形势,也认清自己 zzz ...

知识点都要见识过,至少有印象 (否则:喔唷~~~ 不给性感面试官,在线发offer的机会喽)

目录

1.Java入门知识点分析

2.java基础知识

java基础语法

java基本数据类型

java包装类

java集合容器

java工具类

java运算符/循环结构

java反射

java 流IO (这块不大熟悉)

java 错误/异常Throwable

java线程知识


1.Java入门知识点分析

  1. 什么是面向对象 *
  2. java有哪几种基本数据类型
  3. java语言基本格式
  4. 普通类/ 接口类 / 抽象类 / 枚举类 的共性
  5. 普通类/ 接口类 区别?
  6. 普通类/ 抽象类 区别?
  7. 普通类/ 枚举类 区别?
  8. 接口类/ 抽象类 区别?
  9. 继承注意事项?
  10. 接口实现注意事项?
  11. 访问修饰符有几种?
  12. 访问修饰符对 类 / 属性 / 方法上分别起什么作用?
  13. static 修饰符有什么作用?
  14. final 修饰符作用?
  15. java中对象怎么创建?
  16. i++ 与 ++i的区别?
  17. = 与 == 分别是什么含义?
  18. 数组有几种创建方式?
  19. 字符串创建有几种方式?
  20. java中超类是哪个,有什么特点?
  21. java集合有哪几种?
  22. 数组和链表的区别?(数据结构)

2.java基础知识

java基础语法

  1. 继承和接口实现有什么区别?
  2. 多态是什么?
  3. 重写和重载的区别?
  4. java中根据数据类型区分:可以分为哪2种?

java基本数据类型

  1. java有哪几种基本数据类型 ,对应的包装类是哪些?
  2. int 类型能否为null?
  3. byte  / short / int  / long,在内存中存储 对应字的节数为多少?
  4. float / double 精度 ?
  5. boolean默认值是? 在内存中存储的值是怎么样?
  6.  int 类型引用  能指向 long类型空间 吗?反之呢? (可以从内存角度分析)为什么?
  7. int类型值上下限是多少?
  8. byte类型 与 bit 区别?
  9. 基本数据类型 --- 自动类型转换顺序知道吗?从高到底依次是怎么样的?
  10. 能把大容量类型转换为小容量类型吗?
  11. char类型转int类型的结果可以去哪儿查? (有对应的表)
  12. 精度值强转成整型,是进行4舍5入还是其它?
  13. 整型 3/2 结果是多少?
  14. Math中取余数的方法对负数是怎么处理的?

java包装类

  1. Object类中有多少个方法?每个方法的作用
  2. 其中的clone() 方法与序列化相比有什么区别?
  3. finalize() 方法什么作用?
  4. Integer包装类了解多少?
  5.  
            Integer x= 127;
            Integer x1= 127;
            int x2 = 127;
            System.out.println( x == 127);
            System.out.println( x == (Integer) 127);
            System.out.println( x == x1);
            System.out.println( x1 == x2);        
    
            Integer a= 128;
            int a1 = 128;
            Integer a2= 128;
            Integer b= 129;
            int b1 = 129;
            Integer c= new Integer(128);
            Integer d= new Integer(129);
            System.out.println( a == 128);
            System.out.println( a == (Integer) 128);
            System.out.println( a == a1);
            System.out.println( a == a2);
            System.out.println( a == c);
            System.out.println( b == b1);
            System.out.println( b == d);
    
    
     哪几个返回true?为什么呢?(可以从装箱/拆箱的角度回答问题)
  6. 交换Integer类型的2个值,方法怎么写?
            Integer a= 128;
            Integer b= 129;
            System.out.println( "交换前:a = " + a + ", b = " + b);
            swap(a, b);
            System.out.println( "交换后:a = " + a + ", b = " + b);    
    
        public static void swap(Integer i, Integer j){
            Integer temp = new Integer(i.intValue());
            try {
                Field intValue = Integer.class.getDeclaredField("value");
                intValue.setAccessible(true);
                intValue.set(i, j);
                intValue.set(j, temp);
            } catch (NoSuchFieldException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
    
        }

    上面这个方法对吗?里面有涉及到多少知识点?

  7. String 类能否被继承?
  8. String对象能否修改?
  9. String类中常用方法有哪些?
  10. 字符串比较
    String a = "abc";
    String b = "abc";
    String c = new String("abc");
    System.out.println( a == b);
    System.out.println( a == c);

    结果怎么样?能从内存模型角度解析一下吗?

  11. 字符串比较

        public static void main(String[] args) {
            String a = "ab";
            String c = "cd";
            String d = "abcd"
            String e = "ab" + "cd" + "";
            String f = a + "cd";
            String g = a + c;
        }
    
    

    判断上面 d == e / e == f /  e == g  / f == g ,哪些为true,哪些为false?为什么(String运行反编译文章 传送门

  12. StringBuffer 和 StringBuild的比较?

  13. String 类的 indexof() 方法什么意思?

  14. String类的replace()  和 replaceAll ()  有什么区别?

  15. trim() 能去除字符串中间的空白符吗?

  16. intern() 方法有什么用,jdk5之后该方法做了什么修改?

java集合容器

  1. 数组与集合有什么区别 ?*传送门

  2. java中集合类有哪些 ?

  3. collection 与collections 有什么区别 ?

  4. iterator和 Iterable 有什么区别 ?

  5. comparator<T> 比较函数式接口理解多少,compareable 排序接口 怎么使用?写个程序举例子

  6. Collection中有remove方法 Iterator中也有remove,2者有什么区别 ?

  7. List 和 Set的区别 ?

  8. List是否可以存储重复的值吗 ?有顺序吗?可以存储null吗? Map呢 ?

  9. 数组和链表 数据结构上的区别 ?

  10. List是否是线程安全的?如果不安全,能否举个例子说明不安全 ?

  11. CopyOnWriteArrayList 的使用了解吗 ?

  12. Set有什么特点?一般什么场景使用它 ?

  13. HashSet 和 TreeSet有什么区别?内部实现能描述吗?

  14. Collection 常用方法有哪些知道吗 ?1.8之后加入什么方法 ?

  15. Map 常用方法知道吗 ?Properties实现了什么接口 ?

  16. Map中k-v,key能存储空值吗?value能存储空值吗?

  17. HashMap也是变长的,默认长度是多少?什么情况下,会进行扩容 ?

  18. HashMap 1.7 中put操作的流程大概记得吗?大概描述一下?<java基础-8-HashMap / concurrentHashMap_开发小头目的博客-CSDN博客>

  19. HashMap 1.7 中get操作的流程大概记得吗?大概描述一下?

  20. HashMap 1.7 中size操作的流程大概记得吗?大概描述一下?

  21. HashMap和HashTable的区别?

  22. CurrentHashMap 与 HashMap有什么区别?

  23. HashMap底层实现?1.8版本有什么新改动?

  24. HashMap 1.8 中put操作的流程大概记得吗?大概描述一下?

  25. HashMap 1.8 中get操作的流程大概记得吗?大概描述一下?

  26. HashMap 1.8 中size操作的流程大概记得吗?大概描述一下?

  27. Hash冲突问题怎么解决?

  28. CurrentHashMap1.7 如何实现同步,可以谈谈内部结构? 1.8版本做了些什么改动

  29. CurrentHashMap在1.7中segment初始化都在什么时候?

  30. CurrentHashMap在1.7中put中先获取锁还是先扩容?(送分)

  31. CurrentHashMap在1.7中size会发生什么问题,推荐使用吗?

  32. CurrentHashMap 1.8版本如何实现同步?取消使用AQS机制,用到了synchronized,为什么这么选择?

  33. 核心方法: tabAt / casTabAt / setTabAt 这几个方法如何实现保证线程安全?

  34. CurrentHashMap 1.8版本中红黑树 与 链表什么时候互相开始转换?

            Node 节点数量 >64 :     链表长度>8 链转树 , 链表长度<6 树转链
  35. CurrentHashMap 1.8版本的并发度?

  36. CurrentHashMap 1.8 中put操作的流程大概记得吗?大概描述一下?

  37. CurrentHashMap 1.8 中get操作的流程大概记得吗?大概描述一下?

  38. CurrentHashMap 1.8 中size操作的流程大概记得吗?大概描述一下?

  39. SkipList - 跳表的数据结构?

  40. SkipList - 跳表出现的目的?增快查询的数据

  41. SkipList - 跳表的查询思想?空间换时间!

  42. java 二分法理解? --  Java 二分法_头发挺多的的博客-CSDN博客_java二分法

  43. 红黑树的概念? -- 红黑树解析_Aaron_Mars的博客-CSDN博客_红黑树不要求左树比右数小?

  44. 当二叉树出现最坏情况变成链表的情况,怎么解决?通过左右旋靠近平衡二叉树,红黑树!

  45. CopyOnWriteArrayList 写时复置容器,用空间换时间,单服务可以使用做白名单/黑名单!

java工具类

  1. Number类了解多少?

  2. 数组的创建方式?

  3. 日期类Date() 与JDK8新加入的日期类 LocalDateTime() 横向比较.

  4. 计算2个时间之间相隔多少天?    (多方法实现)

  5. 正则语法不要忘记>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

java运算符/循环结构

  1. 循环有哪几种方法,continue, break; return; 在循环中分别起到什么作用?

  2. switch () 入参类型限制? 字符串类型可以吗(什么版本jdk加入)?

  3. 下面的代码最终输出什么内容?

       public static void main(String args[]){
          int i = 1;
          switch(i){
             case 0:
                System.out.println("0");
             case 1:
                System.out.println("1");
             case 2:
                System.out.println("2");
             default:
                System.out.println("default");
          }
       }

  4. 普通for循环, 增强for 循环, foreach循环有什么区别吗?

  5. java8新增的循环方式: IntStream.range(a, b).forEach(),与普通for循环相比优势和劣势?

  6.  IntStream.range(a, b)循环想要加入stop条件?(java9中加入了那些方法)

  7. 位运算符>> 与 >>> 的区别?位运算了解多少?

java反射

  1. 创建一个对象有那些方式? Java对象创建的方式(简洁明了)_安逸的博客的博客-CSDN博客

  2. Java中的反射可以怎么理解?

  3. 获取Class有哪些方式?

  4. 反射怎么获取属性/方法?

  5. 对象的私有属性,没有公用方法,怎么修改值?

  6. Junit中是否使用到反射知识?

  7. Spring的Bean创建是否使用了反射? 如果有是Cglib 还是java自带动态代理proxy?

  8. 注解解析是否使用反射,怎么使用的?

java 流IO (这块不大熟悉)

  1. 字节流,字符流了解多少?

  2. BIO是什么,有什么特点?快速了解Java中BIO和NIO线程的内容,看这一篇足矣_Xiao艾扶的博客-CSDN博客

  3. NIO是什么,有什么特点?

java 错误/异常Throwable

  1. java语言中所有错误/异常的超类是什么?

  2. throw 和 throws的区别是什么?

  3. Exception 和 RuntimeException 怎么理解?举例子说明更棒

  4. 什么是编译期异常?什么是运行时异常?

  5. 常见的异常知道多少?列举20个(😄,直接榨干)

  6. Error 和 Exception有什么区别?能举例说明吗?Error 和 Exception 的区别?_任重而道远丶的博客-CSDN博客_error和exception

  7. java中什么是异常链?我们一般利用异常链做什么?

  8. try / catch / finally 

        public static void main(String[] args) {
            System.out.println(test1(0));
            System.out.println(test2(0));
            System.out.println(test3(0));
            System.out.println(test4(0));
        }
    
        public static Integer test1(Integer a) {
            try {
                a += 1;
                return a;
            } catch (Exception e) {
                a += 10;
            } finally {
                a += 100;
                System.out.println("finally:" + a);
            }
            return a;
        }
        public static Integer test2(Integer a) {
            try {
                a += 1;
            } catch (Exception e) {
                a += 10;
            } finally {
                a += 100;
                System.out.println("finally:" + a);
            }
            return a;
        }
        public static Integer test3(Integer a) {
            try {
                a += 1/0;
            } catch (Exception e) {
                a += 10;
                return a;
            } finally {
                a += 100;
                System.out.println("finally:" + a);
            }
            return a;
        }
        public static Integer test4(Integer a) {
            try {
                a += 1/0;
                return a;
            } catch (Exception e) {
                a += 10;
            } finally {
                a += 100;
                System.out.println("finally:" + a);
            }
            return a;
        }

    输出结果如何,能解释一下吗?

  9. catch方法

        try {
            XXXX
        } catch (Exception ex) {
            ex.printStackTrace();
        } catch (RuntimeException re) {
            re.printStackTrace();
        }

    上面的代码会报错吗?属于什么时期的异常?

java线程知识

  1. 多线程的意义?

  2. 时间片轮转概念?

  3. 线程的并行数和并发数的区别?

  4. 多线程之间是协作式还是抢占式工作?

  5. Java内存模型了解吗?多线程运行,内存如何分配!

  6. java中创建新线程的方式有哪些?

  7. Thread类了解多少?里面有哪些常用方法?

  8. Runnable接口了解吗?

  9. run() / start() 方法有什么区别?

  10. runnable 接口和 callable接口有什么区别?

  11. 带返回值的新起线程,怎么获取返回值?

  12. Future<V> 了解多少,get()获取线程返回值,会等待吗还是直接返回null?   

  13. (函数式方法)lambad表达式实现一个线程创建?

  14. 以前对于线程知识也有过一些提问(传送门

  15. 线程运行的流转状态有那些?

  16. wait 与 notify 有什么作用? notify 和 notfiyAll 有什么区别?一般怎么选择

  17. sleep与wait有什么区别?

  18. interrupt  与interrupted  有什么区别?分别是什么作用

  19. 怎么安全的停止线程,停止服务?

  20. 什么是死锁?(死锁例子:传送门

  21. synchronized关键字能在基本数据类型上使用吗?能在 Integer 上使用吗?

  22. synchronized能在哪些位置使用,方法?方法块?静态方法?

  23. volatile关键字的作用,与synchronized相比有什么区别,结合内存模型谈谈?

  24. ThreadLocal 概念?线程局部变量!

  25. 在ThreadLocal中内存泄漏怎么发生? (tip:Thread类中ThreadLocalMap -- Entry extends  WeakReference<ThreadLocal<?>>)----有些忘记了

  26. strongReference / softReference / weakReference / 虚引用 的区别?

  27. 线程池大概是什么,有什么作用?

  28. 线程池创建入参有哪些?分别有什么作用?

  29. 线程池该如何选择?针对不同的情况:IO密集型和 CPU密集型

  30. 线程池的等待队列如何选择   =====> 什么情况 ?有界or无界

  31. 拒绝策略的目的是什么?拒绝策略我们如何选择 ?

  32. BlockingQueue:什么是阻塞(等待)队列?

  33. BlockingQueue:对于生产者和消费者模式,什么时候会出现阻塞?有界和无界的区别

  34. DelayQueue :延迟队列有什么特点?

  35. 阻塞队列的操作?队列插入元素有哪几种?移除元素有哪几种?有什么区别?

  36. 阻塞队列的检查方法有哪些?有什么区别 阻塞队列的操作方法_Leon_Jinhai_Sun的博客-CSDN博客_阻塞队列方法

  37. Executors 类内部给我们实现了很多种类型的线程池,可以随便取2个分析一下吗?

  38. 除了java语言锁synchronized,还有其它锁吗?

  39. CAS原理?与synchronized相比较呢?

  40. cas的使用会出现哪些问题? ABA问题怎么发生? 怎么避免?(和volatile搭配使用香不香?)

  41. JDK并发包 - 代码实现的锁 Lock 了解多少?

  42. ReentrantLock锁了解多少?几个核心方法是什么?

  43. ReentrantLock锁的使用固定格式知道吗?

  44. 公平锁和非公平锁区别在哪儿?效率怎么比较?

  45. ReentrantLock是否可重入?可重入的概念是什么?

  46. 当读多写少的时候如何选择锁?读写锁了解多少?如何使用?

  47. 关于AQS了解多少?能否自己实现一个简单的可重入锁?

  48. 锁的对象是什么?继承AbstractQueuedSynchronize 需要实现那几个主要方法?(标记当前获取锁线程方法, trylock / release)

  49. 关于tryAcquire() 方法的核心操作怎么一个实现流程知道吗?传送门

  50. AQS中有一个condition类的使用,了解多少呢?

  51. AQS中LockSupport这个又了解多少呢?

  52. 对于AQS实现的锁,能画一张图来描述一下吗?

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值