Java基础
雪人奥特曼Q
这个作者很懒,什么都没留下…
展开
-
简单动态字符串
什么是简单动态字符串,和常用的字符串的区别?原创 2021-04-08 19:28:04 · 202 阅读 · 0 评论 -
Java - 重写(override)和重载(overload)
Java基础 - 13重写(override)和重载(overload):重写是父子类中相同名字和参数的方法,不同的实现;重载则是相同名字的方法,但是不同的参数,本质上这些方法签名是不一样的;方法名称和参数一致,但是返回值不同,这种情况在 Java 代码中不属于重载,编译都会出错的。public int doSomething() { return 0;}// 输入参数不同,意味着方法签名不同,重载的体现public int doSomething(List<Strin原创 2021-03-24 00:18:41 · 125 阅读 · 0 评论 -
ConcurrentHashMap 分析
目录早期 ConcurrentHashMap:Java 8 和之后的版本的ConcurrentHashMap:Java基础-10早期 ConcurrentHashMap:其实现是基于:分离锁,也就是将内部进行分段(Segment),里面则是 HashEntry 的数组,和 HashMap 类似,哈希相同的条目也是以链表形式存放。HashEntry 内部使用 volatile(禁用缓存) 的 value 字段来保证可见性,也利用了不可变对象的机制以改进利用 Unsafe 提供的底层能力原创 2021-03-23 23:59:05 · 150 阅读 · 0 评论 -
Java默认的排序算法
Java基础-08 【08:11】Java默认的排序算法:需要区分:是 Arrays.sort() 还是 Collections.sort() (底层是调用 Arrays.sort()); 什么数据类型; 多大的数据集(太小的数据集,复杂排序是没必要的,Java 会直接进行二分插入排序)等。对于原始数据类型,目前使用的是所谓双轴快速排序(Dual-Pivot QuickSort),是一种改进的快速排序算法,早期版本是相对传统的快速排序。而对于对象数据类型,目前则是使用TimSort,思原创 2021-03-23 11:13:18 · 1388 阅读 · 0 评论 -
Java8 - 流排序
https://blog.csdn.net/qq_32091599/article/details/103137681原创 2021-03-23 10:29:26 · 122 阅读 · 0 评论 -
int 和 Integer 有什么区别?
int 和 Integer 有什么区别?谈谈 Integer 的值缓存范围。int 是我们常说的整形数字,是 Java 的 8 个原始数据类型(Primitive Types,boolean、byte 、short、char、int、float、double、long)之一。Integer 是 int 对应的包装类,它有一个 int 类型的字段存储数据,并且提供了基本操作,比如数学运算、int 和字符串之间转换等。在 Java 5 中,引入了自动装箱和自动拆箱功能(boxing/unboxing),原创 2021-03-04 11:35:40 · 246 阅读 · 1 评论 -
String、StringBuffer、StringBuilder 有什么区别?
目录StringStringBufferStringBuilder扩展StringString被声明成为 final class,所有属性也都是 final 的。也由于它的不可变性,类似拼接、裁剪字符串等动作,都会产生新的 String 对象。由于字符串操作的普遍性,所以相关操作的效率往往对应用性能有明显影响。String 是 Immutable 类的典型实现,原生的保证了基础线程安全,因为你无法对它内部数据进行任何修改,这种便利甚至体现在拷贝构造函数中,由于不可变,Immutabl原创 2021-03-03 18:13:27 · 178 阅读 · 1 评论 -
强引用、软引用、弱引用、幻象引用有什么区别?
在 Java 语言中,除了原始数据类型的变量,其他所有都是所谓的引用类型,指向各种不同的对象,不同的引用类型,主要体现的是对象不同的可达性(reachable)状态和 对垃圾收集的影响。充分理解这些引用,对于我们设计可靠的缓存等框架,或者诊断应用 OOM 等问题。目录强引用(“Strong” Reference)软引用(SoftReference)弱引用(WeakReference)幻象引用强引用(“Strong” Reference)就是我们最常见的普通对象引用,只要还有强..原创 2021-03-03 17:17:21 · 195 阅读 · 2 评论 -
final、finally、 finalize的区别?
目录finalfinallyfinalizefinalfinal可以修饰变量,方法,类,标识变量不可以修改,方法不可以重写,类不可以被继承。final 只能约束 strList 这个引用不可以被赋值,但是 strList 对象行为不被 final 影响,添加元素等操作是完全正常的。String类型就是final修饰final List<String> strList = new ArrayList<>();strList.add("Hello");..原创 2021-03-03 16:54:08 · 134 阅读 · 1 评论 -
Exception 和 Error 有什么区别?
基本概念理解:问题:请对比 Exception 和 Error? 运行时异常与一般异常有什么区别?Exception 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。Exception 又分为可检查(checked)异常和不检查(unchecked)异常,可检查异常在源代码里必须显式地进行捕获处理,这是编译期检查的一部分。如何处理好异常:了解.原创 2021-03-03 11:57:21 · 102 阅读 · 0 评论 -
String 类的常用方法有哪些
indexOf():返回指定字符的索引。 charAt():返回指定索引处的字符。 replace():字符串替换。 trim():去除字符串两端空白。 split():分割字符串,返回一个分割后的字符串数组。 getBytes():返回字符串的 byte 类型数组。 length():返回字符串长度。 toLowerCas...原创 2020-04-23 22:27:26 · 247 阅读 · 0 评论 -
设计模式之美笔记—— 组合 与 继承 差异
设计模式之美 - 10面向对象编程中,经典的设计原则 —— 组合优于继承,多用组合少用继承。问题:为什么不推荐使用继承? 组合相比继承有哪些优势? 如何判断该用组合还是继承?一、为什么不推荐使用继承:继承:可以解决代码复用问题。偏重于从属关系。继承存在的问题:所有的鸟都继承鸟类的父类,父类中有一个fly的方法,但是对于鸵鸟,企鹅这类鸟类,就不应该存在fly这个方法。因为对于不会飞的鸟类,继承鸟类的父类,一方面会增加编码的工作量;另一方面,违背了最少知道的设计原则。暴露不该暴露的接.原创 2020-08-28 15:08:32 · 157 阅读 · 0 评论 -
抽象类和接口的区别
一、抽象类和接口的异同:相同点:1、都不可以实例化2、接口的实现类和抽象类的子类,只有全部实现了接口或者抽象类中所有的方法,才可以被实例化。不同点:1、接口中都是抽象方法,抽象类中可以部分是抽象方法。2、单继承,多实现。扩展性不同。3、接口强调的是功能,抽象类强调的是所属功能二、创造抽象类和接口的原因满足面向对象的设计原则1、抽象类,是对于一类看起来不同,但是本质相...原创 2020-04-23 22:27:53 · 402 阅读 · 0 评论 -
设计模式之美笔记——面向对象四大特性 之 多态
利用接口类实现多态public interface Iterator { boolean hasNext(); String next(); String remove();}public class Array implements Iterator { private String[] data; public boolean hasNext() { ... } public String next() { ... } public String remo原创 2020-08-20 22:25:04 · 152 阅读 · 0 评论 -
设计模式之美笔记——面向对象四大特性 之 封装
设计模式之美封装特性封装也叫作信息隐藏或者数据访问保护。类通过暴露有限的访问接口,授权外部仅能通过类提供的方式来访问内部信息或者数据。这个类与后端物理存储并不必须一一对应,只是将物理存储中的数据根据需求进行透出和修改读取的控制。它需要编程语言提供权限访问控制语法来支持,例如 Java 中的 private、protected、public 关键字。封装特性存在的意义,一方面是保护数据不被随意修改,提高代码的可维护性;另一方面是仅暴露有限的必要接口,提高类的易用性。public cla原创 2020-08-20 22:33:20 · 111 阅读 · 0 评论 -
面向切面编程 —— Spring AOP
通过切面,动态的为类提供非业务的附加功能原创 2020-12-21 23:31:30 · 117 阅读 · 0 评论 -
设计模式之美笔记 —— 抽象类,接口
设计模式之美 - 8面试中常见的问题:接口和抽象类的区别是什么? 什么时候用接口? 什么时候用抽象类? 抽象类和接口存在的意义是什么?能解决哪些编程问题?原创 2020-08-27 10:24:43 · 174 阅读 · 0 评论 -
Spring中ApplicationContext的getBean()方法
getBean一共有以下四种方法原型:(1)getBean(String name) :通过id或name去查找获取bean.参数name表示IOC容器中已经实例化的bean的id或者name,且无论是id还是name都要求在IOC容器中是唯一的不能重名。(2)getBean(Class type):通过类型去获取bean,要求类型必须唯一参数Class type表示要加载的Bean的类型。如果该类型没有继承任何父类(Object类除外)和实现接口的话,那么要求该类型的bean在IOC容器中也必须是原创 2020-12-10 18:04:51 · 3172 阅读 · 2 评论 -
Java类 —— 匿名类
匿名类原创 2020-12-09 17:54:57 · 236 阅读 · 0 评论 -
Java关键字 —— final
生而不变参考文章原创 2020-12-09 17:13:15 · 109 阅读 · 0 评论 -
Spring DI —— 依赖注入
参考文章原创 2020-09-29 00:21:20 · 114 阅读 · 0 评论 -
Java中的实例化的方式都有哪些?
通过new关键字调用类的构造函数原创 2020-10-23 16:22:04 · 204 阅读 · 0 评论 -
访问权限控制符
默认访问权限,它允许在同一个包内的类成员对象相互访问Java 定义了三个访问关键字来设置类、类成员变量或方法的访问权限:public(公开,任意位置可以访问),private(私有,只有类内可以访问)和protected(受保护,只有子类可以访问)。访问关键字 说明 public 表示任何地方都可以访问或使用所标识的元素。 private 只有类本身或类的方法才可以访问或使用所标识的元素。如果在其它类误使用了 private 所标识的元素,将无法编译通过。 protec原创 2020-11-27 17:27:51 · 208 阅读 · 0 评论 -
Java_反射机制相关及其应用
Java的反射机制:是指允许程序员在程序运行的时候可以获取到某个类内部的信息(变量,方法,构造方法等),并且可以对其进行修改。原创 2020-06-23 18:02:11 · 207 阅读 · 0 评论 -
面试题-Java基础(七)- 异常
1、throw和throws的区别?throws 是用来声明方法可能抛出的所有异常,但只负责抛出异常,由调用者来处理所抛出的异常。 throw是抛出一个具体的异常类型2、final,finally和inalize的区别?final 是一个关键字,可以修饰类,方法,变量,修饰类则类不可以被继承,修饰方法则方法不可以被反写,修饰变量,则变量初始化之后不可以被重新复制。final详解 fi...原创 2020-05-18 22:59:35 · 417 阅读 · 0 评论 -
线程的创建方式
一、继承Thread类继承Thread类,重写run()方法,将所有完成的任务代码写进run()方法中; 创建子类的对象; 调用该对象的Strart()方法 start()和run()方法的区别二、实现Runnable接口三、通过Callable和Future创建线程四、使用线程池创建...原创 2020-04-28 18:17:59 · 172 阅读 · 0 评论 -
线程的wait和sleep方法的区别
wait:原创 2020-04-27 23:24:47 · 464 阅读 · 0 评论 -
线程的状态
线程分为五种状态:一、新建线程 新建一个线程,多种创建线程的方式。二、可运行状态 也称就绪状态,其他线程调用了该对象的start方法(start方法和run方法的区别)。该状态的线程位于可运行线程池中,等待线程被调度,获取CPU使用权。三、运行状态 线程获取了cpu的使用权,执行程序代码四、阻塞状态 线程由于某...原创 2020-04-27 23:18:26 · 231 阅读 · 0 评论 -
Java的序列化和反序列化相关
java的序列化是值将java对象转换成字节序列的过程,使用该字节序列在网络间或者进程间进行通信。使用序列化技术的场景:永久性的保存对象,保存对象的字节序列到本地文件或者数据库中。 通过序列化以字节流的形式是对象在网络中进行传递和接收。 通过序列化在进程中传递对象。序列化技术:Java序列化机制,Json,Hession,XML编码格式的对象序列化机制等。Java序列化机制:java序列化主要有两个接口Serializable接口和Externalizable接口;需要被序列化的原创 2020-05-20 17:07:01 · 433 阅读 · 1 评论 -
Java的引用类型和基本类型的区别
基本类型:变量的值就是一个数字,一个字符或者是一个布尔值。引用类型:是一个对象类型,它的值是 指向内存空间的引用,就是地址,所指的内存中保存着变量所表示的一个值或者一组值。举例说明:变量的赋值方式不同:int a;a = 123; // 基本数据类型 a,在声明的时候就已经为其分配了内存空间,所以可以直接赋值MyDay today;today.day = "Monday"; // 该方式就会报错,应为在引用对象的声明时只分配了引用空间,并没有分配数据空间,没人知道他是一个值,还是原创 2020-05-19 23:35:22 · 843 阅读 · 0 评论 -
Java Object类的公共方法
Object是所有类的基类。原创 2020-04-23 22:26:47 · 547 阅读 · 0 评论 -
Java关键字-static
static关键字static可以修饰 方法,变量,代码块。可以直接通过类本身来访问方法,变量。静态方法内部不可以引用非静态方法或者变量。但是在非静态方法中可以访问静态的变量和方法。其原因在于:静态变量或者方法,在类第一次被加载的时候就会被初始化。而非静态变量或者方法需要依赖于类的对象,在创建对象时候被初始化。静态变量和方法只有一个内存副本,所有对象共享的。可以通过静态代码块来优...原创 2020-05-18 16:50:56 · 128 阅读 · 0 评论 -
面试题-Java基础(一)
1、JDK和JRE的区别?JDK是开发Java程序用的开发包,JRE是运行Java程序的环境2、== 和equals的区别?== 是关系运算符: 基本类型,比较的是值; 引用类型,比较的是地址;equals是方法,来自基类Object九大方法。 来自Object的equals方法,比较的是地址。一般子类会通过反写进行内容的比较。3、两个对象的h...原创 2020-05-18 23:02:26 · 315 阅读 · 0 评论