![](https://img-blog.csdnimg.cn/ee953d36d532436cb4c2a03bf135f40a.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
文章平均质量分 73
记录java的一些基础知识,以及java学习过程中遇到的问题!
冰茶不冰
这个作者很懒,什么都没留下…
展开
-
Java 包装类——比较大小
整数、浮点类型的包装类,都继承于Number类型,而Number类型分别定义了将数字转换为byte、short、int、long、float、double的方法。所以,可以将Integer、Double先转为转换为相同的基本数据类型(如double),然后使用==进行比较。...原创 2022-07-03 14:02:38 · 1747 阅读 · 1 评论 -
若依框架前后端分离版——登录模块代码解读
由于最近做项目需要基于若依框架(前后端分离版)二次开发,这里简单记录一下我看若依框架源代码的过程,供自己复习时使用,也希望能够给想学习若依框架的朋友一点启发!原创 2022-05-29 23:46:44 · 7921 阅读 · 0 评论 -
Java 实现 LRU 算法
1 什么是LRULRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。2 实现思路开始时,内存中没有页面。每次访问页面时,先检测内存中是否存在该页面,若不存在则将该页面加载到内存“末尾”,若存在则直接访问该页面,并将该页面移到内存“末尾”。如果访问某个内存中不存在的页面时,内存已满,则将内存“开头”的页面移出,并将新的页面加载到内存“末尾”。这样就可以始终保持着最近访问的页面在不经常访问的页面的后面了。3数据结构的选择原创 2022-04-05 19:34:20 · 4003 阅读 · 0 评论 -
java 死锁问题
一组进程(线程)的每一个进程(线程)都在等待一个事件,而这个事件只能由这组进程(线程)中的另一个进程(线程)引起。原创 2022-03-18 17:04:10 · 585 阅读 · 0 评论 -
java 线程池
如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间,线程也属于宝贵的系统资源。在Java中可以通过线程池来避免频繁创建销毁线程、实现重复利用,其实际上就是容纳了多个线程的容器。这种思想是不是非常类似于我们生活中的共享单车呢?原创 2022-03-18 17:02:55 · 351 阅读 · 0 评论 -
java 原子性
1 引入所谓的原子性是指在一次操作或者多次操作中,要么所有的操作全部都得到了执行并且不会受到任何因素的干扰而中断,要么所有的操作都不执行。class VolatileAtomicThread implements Runnable { // 定义一个int类型的遍历 private int count = 0 ; @Override public void run() { // 对该变量进行++操作,100次 for(int x = 0 ;原创 2022-03-16 20:40:45 · 1415 阅读 · 0 评论 -
Java 集合类(Map和Collection)
1 引言集合是java中提供的大小可变的容器。集合分为单列结合Collection和双列集合Map。集合和数组的区别:数组的长度是固定的。集合的长度是可变的。数组中存储的是同一类型的元素,可以存储任意类型数据。集合存储的都是引用数据类型,如果想存储基本类型数据需要存储对应的包装类型。2 Collection2.1 继承体系Collection:单列集合类的根接口,Collection接口又派生出三个子接口,分别是java.util.List、java.util.Set和java.uti原创 2022-03-13 19:27:22 · 1983 阅读 · 0 评论 -
Java Lambda表达式和方法引用
Lambda表达式是JDK1.8开始之后的新技术,是一种代码的新语法,其核心目的是为了简化匿名内部类的代码写法。原创 2022-03-01 11:59:33 · 1178 阅读 · 0 评论 -
String、StringBuilder、StringBuffer三者的区别
String、StringBuilder、StringBuffer三者的区别原创 2022-02-14 16:14:14 · 314 阅读 · 0 评论 -
java volatile关键字
并发编程下,多线程修改变量,会出现线程间变量的不可见性。即多个线程访问共享变量,会出现一个线程修改变量的值后,其他线程看不到最新值的情况。原创 2022-02-06 14:14:22 · 567 阅读 · 0 评论 -
java 多线程编程(包括创建线程的三种方式、线程的生命周期、线程的调度策略、线程同步、线程通信、线程池、死锁等)
1 多线程的基础知识1.1 单核CPU和多核CPU单核CPU,其实是一种假的多线程,因为在一个时间单元内,也只能执行一个线程的任务。微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那是因为分时交替运行的时间是非常短的。只有在多核 CPU 系统中,这些程序彩色真正意义上的的同时执行。目前电脑市场上说的多核 CPU,便是多核处理器,核越多,并行处理的程序越多,能大大的提高电脑运行的效率。通过任务管理器可以很方便地查看自己电脑CPU的核数,如下图所示。1.2 并行与并发的区别并行:多原创 2022-01-23 14:50:53 · 672 阅读 · 0 评论 -
java DateFormat及SimpleDateFormat
java.text.DateFormat 是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。原创 2022-01-08 16:02:58 · 800 阅读 · 0 评论 -
java 代码块(局部代码块、实例代码块、静态代码块、同步代码块)
1 引言代码块是类的成分之一:成员变量,方法,构造器,代码块,内部类。在Java中,使用 { } 括起来的代码被称为代码块(Code block)1.1 代码块的分类根据其位置和声明的不同,可以分为:局部代码块:用于限定变量生命周期,及早释放,提高内存利用率。静态代码块:主要用于对静态属性进行初始化。实例(构造)代码块:调用构造方法都会执行,并且在构造方法前执行。同步代码块:一种多线程保护机制。2 局部代码块在方法中出现,可以限定变量生命周期,及早释放,提高内存利用率。2.1 示例原创 2022-01-06 16:55:56 · 8256 阅读 · 2 评论 -
java 抽象类(abstract)与接口(interface)
1 抽象类需要注意的细节:抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。理解:假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有具体的方法体,没有意义。抽象类中,是有构造器的,其是供子类创建对象时,初始化父类成员使用的。理解:子类的构造方法中,有默认的super(),需要访问父类构造方法。抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。理解:未包含抽象方法的抽象类,目的就是不想让调用者创建该类对象,通常用于某些特殊的类结构设原创 2022-01-05 17:28:35 · 1899 阅读 · 0 评论 -
java的重写(override)与重载(overload)
1 方法重写1.1 方法重写的概念子类继承了父类,子类就得到了父类的某个方法。但是子类觉得父类的这个方法不好用或者无法满足自己的需求。子类重写一个与父类申明一样的方法来覆盖父类的该方法,子类的这个方法就进行了方法重写。声明不变,重新实现1.2 方法重写的校验注解:@OverrideJava建议在重写的方法上面加上一个@Override注解,@Override优势:可读性好,安全,优雅!!这个注解标记的方法,就说明这个方法必须是重写父类的方法,否则编译阶段报错。1.3 方法重写的具体要求子类重原创 2022-01-02 23:28:00 · 1295 阅读 · 0 评论 -
java 继承相关知识点
子类能否继承父类的构造器?子类不能继承父类的构造器,因为子类有自己的构造器。子类能否继承父类的私有成员(私有成员变量,私有成员方法)?值得注意的是子类可以继承父类的私有成员(成员变量,方法),只是子类无法直接访问而已,可以通过getter/setter方法访问父类的private成员变量。也可以暴力去访问(可以通过反射调用)继承自父类的私有成员。子类能否继承父类的静态成员(静态成员变量,静态成员方法)?我认为子类是不能继承父类的静态成员的,子类只是可以访问父类的静态成员,父类的静态成员只有一份可以原创 2022-01-02 22:13:08 · 292 阅读 · 0 评论 -
java 中 equals 和 == 的区别(基本数据类型、一般类、String)
Java中,对于基本数据类型、一般类、String而言,equals 和 == 究竟有什么区别呢?让我们深入探讨以下吧!原创 2020-12-04 14:18:01 · 1571 阅读 · 0 评论