标签: Java

178 篇文章

006、java面试题_谈谈你对锁的理解?如何手动模拟一个死锁?
java面试题_谈谈你对锁的理解?如何手动模拟一个死锁? 谈谈你对锁的理解?如何手动模拟一个死锁? 在并发编程中有两个重要的概念:线程和锁,多线程是一把双刃剑,它在提高程序性能的同时,也带来了编码的复杂性,对开发者的要求也提高了一个档次。而锁的出现就是为了保障多线程在同时操作一组资源时的数据一致性,当我们给资源加上锁之后,只有拥有此锁的线程才能操作此资源,而其他线程只能排队等待使用此锁。当然,在所…
005、java面试题_synchronized和ReentrantLock
java面试题_synchronized和ReentrantLock synchronized 和 ReentrantLock 的实现原理是什么?它们有什么区别? 在 JDK 1.5 之前共享对象的协调机制只有 synchronized 和 volatile,在 JDK 1.5 中增加了新的机制 ReentrantLock,该机制的诞生并不是为了替代 synchronized,而是在 synchr…
004、java面试题_详解 ThreadPoolExecutor 的参数含义及源码执行流程?
java面试题_详解 ThreadPoolExecutor 的参数含义及源码执行流程? 详解 ThreadPoolExecutor 的参数含义及源码执行流程? 线程池是为了避免线程频繁的创建和销毁带来的性能消耗,而建立的一种池化技术,它是把已创建的线程放入“池”中,当有任务来临时就可以重用已有的线程,无需等待创建的过程,这样就可以有效提高程序的响应速度。但如果要说线程池的话一定离不开ThreadP…
003、java面试题_线程的状态有哪些?它是如何工作的?
java面试题_线程的状态有哪些?它是如何工作的? 线程的状态有哪些?它是如何工作的? 线程(Thread)是并发编程的基础,也是程序执行的最小单元,它依托进程而存在。一个进程中可以包含多个线程,多线程可以共享一块内存空间和一组系统资源,因此线程之间的切换更加节省资源、更加轻量化,也因此被称为轻量级的进程。 当然,线程也是面试中常被问到的一个知识点,是程序员必备的基础技能,使用它可以有效地提高程序…
java面002、试题_HashMap 底层实现原理是什么?JDK8 做了哪些优化?
java面试题_HashMap 底层实现原理是什么?JDK8 做了哪些优化? HashMap 底层实现原理是什么?JDK8 做了哪些优化? HashMap 是使用频率最高的类型之一,同时也是面试经常被问到的问题之一,这是因为 HashMap 的知识点有很多,同时它又属于 Java 基础知识的一部分,因此在面试中经常被问到。 本课时的面试题是,HashMap 底层是如何实现的?在 JDK 1.8 中…
001、java面试题_String 是如何实现的?它有哪些重要的方法?
java面试题_String 是如何实现的?它有哪些重要的方法? String 是如何实现的?它有哪些重要的方法? 几乎所有的 Java 面试都是以 String 开始的,如果第一个问题没有回答好,则会给面试官留下非常不好的第一印象,而糟糕的第一印象则会直接影响到自己的面试结果,就好像刚破壳的小鹅一样,会把第一眼看到的动物当成自己的母亲,即使它第一眼看到的是一只小狗或小猫,也会默认跟随其后,心理学…
016、Java泛型实例化
Java泛型实例化 实例化具有无参数构造函数的泛型对象 //newInstance() method need constructor without parameter //Class<T> come form Class.class public <T> T getNewObject(Class<T> cls) { T t=null; try { t = c…
015、java开发人员最常犯的10中错误
java开发人员最常犯的10中错误 一、把数组转成ArrayList 为了将数组转换为ArrayList,开发者经常会这样做: List<String> list = Arrays.asList(arr); 使用Arrays.asList()方法可以得到一个ArrayList,但是得到这个ArrayList其实是定义在Arrays类中的一个私有的静态内部类。这个类虽然和java.uti…
014、java面向对象_Java面向对象继承
java面向对象_Java面向对象继承 继承的概念 继承是面向对象编程中的一个概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。子类在继承父类的同时也可以添加自己的属性和方法,从而实现代码的复用和扩展。继承是面向对象编程的三大特征之一,其他两个分别是封装和多态。 继承的作用 1.提高代码的复用性:通过继承,子类可以直接使用父类的属性和方法,不需要重复定义。 2.便于…
013、java面向对象_Java面向对象封装
java面向对象_Java面向对象封装 封装的概念 Java封装是一种面向对象的编程方法,它的主要思想是将类的内部细节(包括数据和方法)隐藏起来,对外只提供公共的访问接口,从而保证了程序的安全性和稳定性。 封装具体实现步骤 1、声明类的成员变量时,使用private关键字进行修饰,将变量设为私有属性(只能在类的内部访问)。 2、为每个私有属性提供getter和setter方法,用来读取和修改私有属…