
Java
文章平均质量分 95
程序猿周周
互联网BUG攻城狮
展开
-
深入浅出Java线程池Worker类
本文将以线程池 ThreadPoolExecutor 中成员变量的分析,了解到Runnable、Worker、Thread 以及 BlockingQueue 在线程池中的关系。然后以任务提交 `sumbit()` 函数作为入口,探究了线程池中线程的创建、执行以及保活的实现,对线程池的工作流程和原理也有了很好的理解。原创 2023-03-29 22:51:28 · 1946 阅读 · 1 评论 -
Java虚拟机之类加载学习总结
Java 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形可以被虚拟机直接使用的 Java 类型,这个过程被称作虚拟机的类加载机制。实现自定义类加载器一般分为两步:一是继承;二是重写父类的方法。defineClass():将一个字节数组转换为 Class 类的实例;loadClass():根据全限定类名找到类,推荐自定义类加载器重写,而不是当前方法。实际上,即使我们按如上方法自定义了类加载器,也无法使用自定义类加载器。分析内部调用父类的无参构造函数。原创 2023-02-25 16:46:12 · 724 阅读 · 0 评论 -
【Java】你应该知道的JDK19新特性
9月20日,JDK19 终于在千呼万唤中正式发布,随之发布的新特性中包括了最为广受期待的虚拟线程,以改善多线程、并发编程难度。原创 2022-10-06 11:04:13 · 2834 阅读 · 0 评论 -
【MySQL】进阶——一起探究MySQL优化器如何选择索引的奥秘
🌟 前言🐶 作者简介:大家好,我是周周,目前就职于国内短视频小厂BUG攻城狮一枚。💻个人主页:程序猿周周📖专题系列:Java面试总结🤺 如果文章对你有帮助,记得👍点赞👍、👀关注👀➕👌收藏👌,一键三连哦,你的支持将成为我最大的动力。文章目录🌟 前言🚀 1 概述🌈 1.1 索引为何不生效🌈 1.2 SQL 的执行过程🌈 1.3 MySQL 做了哪些优化🚀 2 优化器🌈 2.0 数据准备🌈 2.1 逻辑转换🌈 2.2 基于成本优化🌈 2.3 执行计划改进🚀 3 基于成本优化🌈 3.1 什么是成本🌈原创 2022-05-08 18:29:38 · 2520 阅读 · 2 评论 -
详解IO多路复用机制——select、poll、epoll的原理和区别
🌟 前言🐶 大家好,我是周周,目前就职于国内短视频小厂BUG攻城狮一枚。🤺 如果文章对你有帮助,记得关注、点赞、收藏,一键三连哦,你的支持将成为我最大的动力。文章目录🌟 前言🍑 1 概述🍑 2 select🍑 3 poll🍑 4 epoll🍉 4.1 函数定义🍉 4.2 工作模式🍉 4.3 为何高效🍑 5 总结🍉 5.1 三种机制的区别🍉 5.2 epoll 优点🍑 1 概述select、poll 以及 epoll 是 Linux 系统的三个系统调用,也是 IO 多路复用模型的具体实现。由前文原创 2022-05-03 12:36:50 · 25968 阅读 · 2 评论 -
五种常见IO模型
🌟 前言🐶 大家好,我是周周,目前就职于国内短视频某厂的BUG攻城狮一枚。🤺 如果文章对你有帮助,记得关注、点赞、收藏,一键三连哦,你的支持将成为我最大的动力。文章目录🌟 前言1 概述🍑 1.1 什么是 IO🍑 1.2 什么是缓冲区🍑 1.3 阻塞和非阻塞🍑 1.4 同步和异步2 五种 IO 模型🍑 2.1 同步阻塞 IO🍑 2.2 同步非阻塞 IO🍑 2.3 IO 多路复用🍑 2.4 异步 IO🍑 2.5 信号驱动 IO1 概述服务端高并发 IO 编程往往要求的性能都非常高,一般情况下需要选用高原创 2022-05-02 20:53:10 · 6943 阅读 · 1 评论 -
【Java】Java学习笔记-面向对象
一 Java构造器(构造方法) java中的构造方法是一种特殊类型的方法,用于初始化对象。Java构造函数在对象创建时被调用。 它构造值,即提供对象的数据,这是为什么它被称为构造函数。创建java构造函数的规则:构造函数名称必须与其类名称相同构造函数必须没有显式返回类型 有两种类型的构造函数:1. 默认构造函数(无参数构造函数)2. 参数化构造函数1...原创 2018-02-15 11:16:17 · 372 阅读 · 0 评论 -
【Java】Java学习笔记-对象和类
Java 对象和类 Java作为一种面向对象语言。支持以下基本概念: 1. 多态 2. 继承 3. 封装 5. 抽象 6. 类 7. 对象 8. 实例 9. 方法 10. 消息解析对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜...原创 2018-02-12 16:12:40 · 363 阅读 · 0 评论 -
【Java】Java学习笔记-多线程
Java给多线程编程提供了内置的支持。一个多线程程序包含两个或多个能并发运行的部分。程序的每一部分都称作一个线程,并且每个线程定义了一个独立的执行路径。多线程是多任务的一种特别的形式。多线程比多任务需要更小的开销。这里定义和线程相关的另一个术语:进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守候线程都结束原创 2018-02-26 15:56:10 · 368 阅读 · 0 评论 -
【Java】Java学习笔记-基础语法
一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。类:类是一个模板,它描述一类对象的行为和状态。方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完...原创 2018-02-11 13:59:47 · 243 阅读 · 0 评论 -
【Java】Java学习笔记-控制语句
Java 循环结构 顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,,就需要使用循环结构。Java中有三种主要的循环结构:1. while循环2. do…while循环3. for循环(一)while循环 while是最基本的循环,用于重复程序的一部分几次或重复执行一个代码块。 如果迭代次数不固定,建议使用while循环。while(co...原创 2018-02-11 16:55:03 · 370 阅读 · 0 评论 -
【Java】Java学习笔记-运算符
Java运算符 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组:1. 算术运算符算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算。(表格中的实例假设整数变量A的值为10,变量B的值为20) 操作符 描述 例子 +...原创 2018-02-11 16:15:50 · 301 阅读 · 0 评论 -
【Java】Java学习笔记-修饰符
Java 修饰符 修饰符用来定义类、方法或者变量,通常放在语句的最前端。Java语言提供了很多修饰符,主要分为以下两类:1. 访问修饰符2. 非访问修饰符一、访问控制修饰符 Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。默认的,也称为default,在同一包内可见,不使用任何修饰符。私有的,以pr...原创 2018-02-11 15:37:18 · 224 阅读 · 0 评论 -
【Java】Java学习笔记-变量和数据类型
Java 变量 变量是在内存中分配的保留区域的名称。换句话说,它是内存位置的名称。这意味着它的值可以改变。在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:type identifier [ = value][, identifier [= value] ...] ;格式说明:type为Java数据类型。identifier是变量名。可以使用逗号隔开来声...原创 2018-02-11 14:59:27 · 259 阅读 · 0 评论 -
【Java】Java学习笔记-入门
一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。(一)Java分为三个体系:JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)JavaEE(J2EE)(...原创 2018-02-11 10:28:07 · 296 阅读 · 0 评论 -
【Android】程序设计 ——记账App项目android移动端的实现
这是一个单纯的记账软件,目前的功能可以实现记账,显示总的支出、收入、结余,账单归类统计、用户信息管理功能,后续功能慢慢完善在我们生活中经常不知道钱花在什么地方,但是我们自己又不是很想写在记账本上进行管理,因为关于记账,我们每个人都有自己的需求,虽然市面上有许多优秀的记账app,所以对于自己来说,开发一个属于自己的软件来记账是个非常有趣的事情,但一直因为时间安排的原因未能实现。 所以趁着本学期程序实原创 2017-12-31 16:20:32 · 48167 阅读 · 49 评论 -
解决The JAVA_HOME environment variable is not defined correctly
错误:The JAVA_HOME environment variable is not defined correctly 无论是maven还是tomcat,总是提示: NB: JAVA_HOME should point to a JDK not a JRE早先以为环境变量配置错误,但java和javac均能够执行,便一直没有找到原因。解决: JAVA_HOME后一定不能加分号由于原创 2017-09-09 20:43:14 · 23846 阅读 · 11 评论