- ·数组(array): 简单的说就是一组数。 java中数组也是一种数据类型,相同数据类型的匀速按照一定的顺序的集合,而且是有限个类型相同的变量用一个名字来命名。 比如要存储1706A班级的学员成绩,第一组有四个同学,我们可以如下定义: int score1 =80; int score2 = 82; int score3 = 83; int score = 84; 但... ·数组(array): 简单的说就是一组数。 java中数组也是一种数据类型,相同数据类型的匀速按照一定的顺序的集合,而且是有限个类型相同的变量用一个名字来命名。 比如要存储1706A班级的学员成绩,第一组有四个同学,我们可以如下定义: int score1 =80; int score2 = 82; int score3 = 83; int score = 84; 但...
- 1 背景 Java8前,处理日期时间时,使用的“三大件” DateCalenderSimpleDateFormat 以声明时间戳、使用日历处理日期和格式化解析日期时间。但这些类的API可读性差、使用繁琐,且非线程安全,如同设计的翔一样的IO,也是Java让人诟病的一大原因。 于是Java8推出全新日期时间类。这些类的API功能强大简便、线程安全。 但毕竟Jav... 1 背景 Java8前,处理日期时间时,使用的“三大件” DateCalenderSimpleDateFormat 以声明时间戳、使用日历处理日期和格式化解析日期时间。但这些类的API可读性差、使用繁琐,且非线程安全,如同设计的翔一样的IO,也是Java让人诟病的一大原因。 于是Java8推出全新日期时间类。这些类的API功能强大简便、线程安全。 但毕竟Jav...
- 在JDK的源码使用工厂模式,ThreadFactory就是其中一种。 在我们一般的使用中,创建一个线程,通常有两种方式: 继承Thread类,覆盖run方法,实现我们需要的业务 继承Runnable接口,实现run方法,实现我们需要的业务,并且调用new Thread(Runnable)方法,将其包装为一个线程执行 设想这样一种场景,我们需要一个线程池,并且对于线程... 在JDK的源码使用工厂模式,ThreadFactory就是其中一种。 在我们一般的使用中,创建一个线程,通常有两种方式: 继承Thread类,覆盖run方法,实现我们需要的业务 继承Runnable接口,实现run方法,实现我们需要的业务,并且调用new Thread(Runnable)方法,将其包装为一个线程执行 设想这样一种场景,我们需要一个线程池,并且对于线程...
- 在上一章里,我们已经学习了类加载的过程,我们知道在加载阶段需要”通过一个类的全限定名来获取描述该类的二进制字节流“,而来完成这个工作的就是类加载器(Class Loader)。 1、类与类加载器 类加载器只用于实现类的加载动作。 但对于任意一个类,都必须由加载它的类加载器和这个类本身一起共同确立其在Java虚拟机中的唯一性,每 一个类加载器,都拥有一个独立的类名称... 在上一章里,我们已经学习了类加载的过程,我们知道在加载阶段需要”通过一个类的全限定名来获取描述该类的二进制字节流“,而来完成这个工作的就是类加载器(Class Loader)。 1、类与类加载器 类加载器只用于实现类的加载动作。 但对于任意一个类,都必须由加载它的类加载器和这个类本身一起共同确立其在Java虚拟机中的唯一性,每 一个类加载器,都拥有一个独立的类名称...
- 你好呀,我是灰小猿,一个超会写bug的程序猿! 欢迎大家关注我的专栏“每日蓝桥”,该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想、数据结构等内容,帮助大家学习到更多的知识和技术! 标题:组队 作为篮球队教练,你需要从以下名单中选出1号位至5号位各- -名球员,组成球队的首发阵容。每位球员担任1号位至5号位时的评分如下表所示。请你... 你好呀,我是灰小猿,一个超会写bug的程序猿! 欢迎大家关注我的专栏“每日蓝桥”,该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想、数据结构等内容,帮助大家学习到更多的知识和技术! 标题:组队 作为篮球队教练,你需要从以下名单中选出1号位至5号位各- -名球员,组成球队的首发阵容。每位球员担任1号位至5号位时的评分如下表所示。请你...
- 前言if...else 是所有高级编程语言都有的必备功能。但现实中的代码往往存在着过多的 if...else。虽然 if...else 是必须的,但滥用 if...else 会对代码的可读性、可维护性造成很大伤害,进而危害到整个软件系统。现在软件开发领域出现了很多新技术、新概念,但 if...else 这种基本的程序形式并没有发生太大变化。使用好 if...else 不仅对于现在,而且对于将... 前言if...else 是所有高级编程语言都有的必备功能。但现实中的代码往往存在着过多的 if...else。虽然 if...else 是必须的,但滥用 if...else 会对代码的可读性、可维护性造成很大伤害,进而危害到整个软件系统。现在软件开发领域出现了很多新技术、新概念,但 if...else 这种基本的程序形式并没有发生太大变化。使用好 if...else 不仅对于现在,而且对于将...
- 接上回书 书接上一回,分享了Class文件的主要构成,同时也详细分析了魔数、次版本号、主版本号、常量池集合、访问标志的构造,接下来我们就继续学习。 类索引和父类索引 类索引(this_class)和父类索引(super_class)都是一个u2类型的数据,类索引用于确定这个类的全限定名,父类索引用于确定这个类的父类全限定名。由于java语言不允许多重继承,所以父类... 接上回书 书接上一回,分享了Class文件的主要构成,同时也详细分析了魔数、次版本号、主版本号、常量池集合、访问标志的构造,接下来我们就继续学习。 类索引和父类索引 类索引(this_class)和父类索引(super_class)都是一个u2类型的数据,类索引用于确定这个类的全限定名,父类索引用于确定这个类的父类全限定名。由于java语言不允许多重继承,所以父类...
- 什么是类加载机制 JVM把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被JVM直接使用的Java类型,这就是JVM的类加载机制。 如果你对Class文件的结构还不熟悉,可以参考之前的文章Class文件结构全面解析(上)和Class文件结构全面解析(下)。 类的生命周期 类从被加载到内存中,到被卸载出内存,一共分为以下几步... 什么是类加载机制 JVM把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被JVM直接使用的Java类型,这就是JVM的类加载机制。 如果你对Class文件的结构还不熟悉,可以参考之前的文章Class文件结构全面解析(上)和Class文件结构全面解析(下)。 类的生命周期 类从被加载到内存中,到被卸载出内存,一共分为以下几步...
- JVM类加载过程 JVM类加载过程分为几个阶段,分别是加载、验证、准备、解析和初始化。加载是把二进制字节码载入内存,验证是校验字节流中包含的信息是否符合当要求,准备是为静态变量分配内存并设置静态变量初始值,解析是把常量池内的符号引用替换为直接引用,初始化是执行所有静态变量的赋值动作和静态语句块中的语句。更多详尽分析请阅读之前的文章《JVM的类加载机制全面解析》,这里不... JVM类加载过程 JVM类加载过程分为几个阶段,分别是加载、验证、准备、解析和初始化。加载是把二进制字节码载入内存,验证是校验字节流中包含的信息是否符合当要求,准备是为静态变量分配内存并设置静态变量初始值,解析是把常量池内的符号引用替换为直接引用,初始化是执行所有静态变量的赋值动作和静态语句块中的语句。更多详尽分析请阅读之前的文章《JVM的类加载机制全面解析》,这里不...
- 一、思考题 以下代码可能有什么错误?为什么? import java.util.HashMap; import java.util.Map; public class OneMoreStudy { public static void main(String[] args) { Map<String, Integer> map = new HashMa... 一、思考题 以下代码可能有什么错误?为什么? import java.util.HashMap; import java.util.Map; public class OneMoreStudy { public static void main(String[] args) { Map<String, Integer> map = new HashMa...
- 1.什么是线程安全性 当多个线程访问某个类时,不管运行时环境采用何种调用方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。 无状态的对象一定是线程安全的,比如:Servlet。 2.原子性 2.1 竞争条件 由于不恰当的执行时序而出现不正确的结果的情况,就是竞争条件。 “先检查... 1.什么是线程安全性 当多个线程访问某个类时,不管运行时环境采用何种调用方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。 无状态的对象一定是线程安全的,比如:Servlet。 2.原子性 2.1 竞争条件 由于不恰当的执行时序而出现不正确的结果的情况,就是竞争条件。 “先检查...
- 1 线程的优势 1.1 发挥多处理器的强大能力 多线程程序可以同时在多个处理器上执行。如果设计正确,多线程程序可以通过提高处理器资源的利用率来提升系统吞吐率。 1.2 建模的简单性 如果在程序中只包含一种类型的任务,那么比包含多种不同类型任务的程序要更易于编写,错误更少,也更容易测试。 1.3 异步时间的简化处理 服务器应用程序在接受来自多个远程客户端的套接... 1 线程的优势 1.1 发挥多处理器的强大能力 多线程程序可以同时在多个处理器上执行。如果设计正确,多线程程序可以通过提高处理器资源的利用率来提升系统吞吐率。 1.2 建模的简单性 如果在程序中只包含一种类型的任务,那么比包含多种不同类型任务的程序要更易于编写,错误更少,也更容易测试。 1.3 异步时间的简化处理 服务器应用程序在接受来自多个远程客户端的套接...
- 一个头发稀少、穿着格子衬衣的中年男子走了进来,把手里拿的MAC放在桌子上,对我说:“我会用电脑记录面试过程,你不要介意啊”。 我回答到:“没关系。” 面试官:“先来一点基础的算法题吧,用Java写一个方法,求100万内的质数。” 我心中暗想确实很基础,质数不就是除了1和自身外无法被其他数整除的数嘛,于是便写下: public static List<I... 一个头发稀少、穿着格子衬衣的中年男子走了进来,把手里拿的MAC放在桌子上,对我说:“我会用电脑记录面试过程,你不要介意啊”。 我回答到:“没关系。” 面试官:“先来一点基础的算法题吧,用Java写一个方法,求100万内的质数。” 我心中暗想确实很基础,质数不就是除了1和自身外无法被其他数整除的数嘛,于是便写下: public static List<I...
- 题目 使用Swing实现一个窗口程序,窗口包括一个菜单栏,请按以下要求实现相应功能。 (1)窗口标题为“GUI程序”,大小为400X300, 居中显示:窗口上有一个面板,面板背景色为灰色; (2)面板上有一个标签,内容为“河南城建学院”,字体为“隶书”,字号“20”:菜单栏上有两个菜单“字体”和“退出”, 菜单“字体”中有菜单项“宋体”和“楷体”, 菜单“退出”中... 题目 使用Swing实现一个窗口程序,窗口包括一个菜单栏,请按以下要求实现相应功能。 (1)窗口标题为“GUI程序”,大小为400X300, 居中显示:窗口上有一个面板,面板背景色为灰色; (2)面板上有一个标签,内容为“河南城建学院”,字体为“隶书”,字号“20”:菜单栏上有两个菜单“字体”和“退出”, 菜单“字体”中有菜单项“宋体”和“楷体”, 菜单“退出”中...
- 栈是线程私有的,每个线程都是自己的栈,每个线程中的每个方法在执行的同时会创建一个栈帧用于存局部变量表、操作数栈、动态链接、方法返回地址等信息。每一个方法从调用到执行完毕的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。其中局部变量表,存放基本类型(boolean、byte、char、short、int、float)、对象的引用等等,对象的引用不是对象实例本身,而是... 栈是线程私有的,每个线程都是自己的栈,每个线程中的每个方法在执行的同时会创建一个栈帧用于存局部变量表、操作数栈、动态链接、方法返回地址等信息。每一个方法从调用到执行完毕的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。其中局部变量表,存放基本类型(boolean、byte、char、short、int、float)、对象的引用等等,对象的引用不是对象实例本身,而是...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中 -
一个AI团队帮你写代码:华为云码道Agent Space实战2026/06/25 周四 19:00-21:00
张翰文-华为云码道工程师/郭英旭-青软创新科技集团股份有限公司 软件架构师
本场直播聚焦华为云码道Agent Space两大模式:研发办公、代码开发,亲身体验从需求到代码的AI自动化能力。实操演示基于华为 CodeArts CLI,依托 OpenSpec 规格体系从零搭建业务项目。
回顾中
热门标签