![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA基础
happytaohaha
好记性不如烂笔头
展开
-
Java做题时基本知识汇总(持续更新)
关于java二维数组长度(length)的知识关于java二维数组长度(length)的知识原创 2020-01-31 15:03:24 · 212 阅读 · 0 评论 -
Java:如何更优雅的处理空值?
Java:如何更优雅的处理空值?导语:在笔者几年的开发经验中,经常看到项目中存在到处空值判断的情况,这些判断,会让人觉得摸不着头绪,它的出现很有可能和当前的业务逻辑并没有关系。但它会让你很头疼。有时候,更可怕的是系统因为这些空值的情况,会抛出空指针异常,导致业务系统发生问题。此篇文章,我总结了几种关于空值的处理手法,希望对读者有帮助。业务中的空值场景存在一个UserSearchSer...转载 2019-10-30 21:08:17 · 274 阅读 · 0 评论 -
Java优先队列PriorityQueue
参考: https://blog.csdn.net/chengyingzhilian/article/details/8078032PriorityQueue是java中的优先队列。其实现了Queue接口,不允许放入空值。其通过小顶堆实现。不允许放入null元素内部排序方式为堆的形式比较 二叉树的堆数据结构为 数组 可自动增大的数组 。其几个方法的实现如下offer()...转载 2019-09-07 16:42:05 · 325 阅读 · 0 评论 -
Java PriorityBlockingQueue 原理分析
PriorityBlockingQueue是一个支持优先级的无界阻塞队列,直到系统资源耗尽。默认情况下元素采用自然顺序升序排列。也可以自定义类实现compareTo()方法来指定元素排序规则,或者初始化PriorityBlockingQueue时,指定构造参数Comparator来对元素进行排序。但需要注意的是不能保证同优先级元素的顺序。PriorityBlockingQueue也是基于最小二叉堆...转载 2019-09-07 17:32:41 · 198 阅读 · 0 评论 -
CharSequence与String的比较
CharSequenceCharSequence与String都能用于定义字符串,但CharSequence的值是 ??可读可写序列??,而String的值是只读序列。CharSequence 是一个接口 代表的是一个有序字符集合,这个接口包含的方法有:charAt(int index),toString(),length(),subSequence(int start,int end)...原创 2019-09-07 21:34:25 · 6540 阅读 · 3 评论 -
1.java基础之继承
虽然说java中的面向对象的概念不多,但是具体的细节还是值得大家学习研究,java中的继承实际上就是子类拥有父类所有的内容(除私有信息外),并对其进行扩展。下面是我的笔记,主要包含以下一些内容点:构造方法重写和重载final关键字new的背后(内存分析)理解方法调用1. 构造方法正如我们所知道的,构造方法的方法名与类名相同,主要的作用是实现对实例对象的初始化工作,实际上每个子...转载 2019-09-14 20:14:32 · 179 阅读 · 0 评论 -
2.全面理解java异常机制
在理想状态下,程序会按照我们预想的步骤一步一步的执行,但是即使你是大牛,你也不可避免出错,所以java为我们提供了异常机制。本文将会从以下几个方面介绍java中的异常机制:异常机制的层次结构异常的处理过程抛出异常捕获异常异常机制的实现细节异常机制的层次结构在java程序设计语言中,所有的异常对象都是派生于Throwable类,一般情况下,如果java中内置的异常类不能满足需求,...转载 2019-09-14 20:51:57 · 109 阅读 · 0 评论 -
java运算符的优先级和结合性
优先级可以使用() 进行改变优先顺序。结合性所有的数学运算符都认为是从左到右运算的,Java 语言中大部分运算符也是从左到右结合的,只有单目运算符、赋值运算符和三目运算符例外,其中,单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左运算。乘法和加法是两个可结合的运算,也就是说,这两个运算符左右两边的操作数可以互换位置而不会影响结果。当有多中运算符参与运算的时候,先要考虑...原创 2019-09-25 08:37:50 · 1505 阅读 · 0 评论 -
如何在代码中应用设计模式?
为什么要使用设计模式因为我们的项目的需求是永远在变的,为了应对这种变化,使得我们的代码能够轻易的实现解耦和拓展。如果能够保证代码一次写好以后都不会再改变了,那可以想怎么写怎么写了。如何判断那里需要使用设计模式在我们实现中,有一些代码是一次写好后续基本不会改变的,或者不太需要扩展的,比如一些工具类等。有一部分是会经常变得,设计模式大多都应用在需求会变化的这一部分。分析这些代码会如何变,选择合...转载 2019-10-04 21:27:21 · 123 阅读 · 0 评论 -
JAVA计算摘要,MD5、SHA-1、SHA-256、SHA-512、HmacMD5、HmacSHA1 、HmacSHA256、HmacSHA512
摘要的作用?1.保证数据的完整性:例如你发送一个100M的文件给你的B,但是你不知道B收到的是否是完整的文件;此时你首先使用摘要算法,如MD5,计算了一个固定长度的摘要,将这个摘要和文件一起发送给B,B接收完文件之后,同样使用MD5计算摘要,如果B计算的结果和你发送给他的摘要结果一致,说明B接收的文件是完整的。2.数字签名:数字签名里面的签名都是使用摘要算法计算的,目前(2017年),数字签...转载 2019-10-07 16:25:06 · 1505 阅读 · 0 评论 -
Java的四种线程池的使用
Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程newFixedThreadPool创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待newScheduledThreadPool创建一个定长线程池,支持定时及周期性任务执行newsingl...原创 2019-08-28 18:29:15 · 97 阅读 · 0 评论 -
Java鲁棒性
鲁棒性的定义Robust:健壮、强壮。在异常和危险情况下系统生存的关键。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。Java鲁棒性的特点如下:1.Java在编译和运行程序时都要对可能出现的问题进行检查,以防止错误的产生。2.Java编译器可以查出许多其他语言运行时才能发现的错误。3.Java不支持指针操作,大大减少了错误发生...原创 2019-05-24 21:03:00 · 644 阅读 · 0 评论 -
Java反射
定义JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。用途在日常的第三方应用开发过程中,经常会遇到某个类的某个成员变量、方法或是属性是私有的或是只对系统应用开放,这时候就可以利用Java的反射机制通过反射来获取所需的私有成员或是方法。当然,也不...转载 2019-08-27 21:55:49 · 108 阅读 · 0 评论 -
Java 垃圾回收机制与几种垃圾回收算法
算法标记清除法复制算法标记整理算法分代收集算法Mark-Sweep(标记-清除)算法这是最基础的垃圾回收算法,之所以说它是最基础的是因为它最容易实现,思想也是最简单的。标记-清除算法分为两个阶段:标记阶段和清除阶段。标记阶段的任务是标记出所有需要被回收的对象,清除阶段就是回收被标记的对象所占用的空间。具体过程如下图所示:存在问题: 回收后会产生大量的内存碎片,因此再次分配大对...转载 2019-08-28 10:42:31 · 685 阅读 · 0 评论 -
十大经典排序(Java)
定义:对一序列对象根据某个关键字进行排序。术语说明:稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在内存中完成;外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内- - 存的数据传输才能进行;时间复杂度: 一个算法执行所耗费的时间。空间复杂度:运行完一个程序所...转载 2019-08-28 16:50:43 · 398 阅读 · 0 评论 -
Java中&和&&的区别
java中&和&&的区别,&和&&虽然都是逻辑运算符,都是判断两边为真,则语句成立,但是在运行的时候,还是有差别的,下面举例来说明。第一种public class Test2{ public static void main(String[] args){ int i=3; ...转载 2019-05-24 20:54:12 · 1934 阅读 · 0 评论