「JAVA」线程生命周期分阶段详解,哲学家们深感死锁难解

2020-07-01
阅读 7 分钟
1.5k
每个事物都有其生命周期,也就是事物从出生开始到最终消亡这中间的整个过程;在其整个生命周期的历程中,会有不同阶段,每个阶段对应着一种状态,比如:人的一生会经历从婴幼儿、青少年、青壮年、中老年到最终死亡,离开这人世间,这是人一生的状态;同样的,线程作为一种事物,也有生命周期,在其生命周期中也存在着不...

「JAVA」Java 线程不安全分析,同步锁和Lock机制,哪个解决方案更好

2020-06-23
阅读 7 分钟
2.5k
在线程中的run方法上不能使用throws来声明抛出异常,所以在run方法中调用有可能出现异常的代码时,只能使用try-catch将其捕获来处理。

「JAVA」线程基础知识不牢固?别愁,我不仅梳理好了,还附带了案例

2020-06-20
阅读 7 分钟
1.2k
程序在没有流程控制的前提下,代码都是从上而下逐行依次执行的。基于这样的机制,如果我们使用程序来实现边打游戏,边听音乐的需求时,就会很困难;因为按照执行顺序,只能从上往下依次执行;同一时刻,只能执行听音乐和打游戏的其中之一。

「JAVA」运行时异常、编译时异常、自定义异常,通过案例实践转译和异常链

2020-06-14
阅读 8 分钟
3.4k
从事Java开发的小伙伴对于“异常”应该不陌生,因为每天都会遇到不少异常,或捕获,或抛出。那究竟什么是异常?异常即非正常的,不同于平常、一般化的情况。

「JAVA」线程基础知识不牢固?别愁,我不仅梳理好了,还附带了案例

2020-05-04
阅读 8 分钟
1.2k
程序在没有流程控制的前提下,代码都是从上而下逐行依次执行的。基于这样的机制,如果我们使用程序来实现边打游戏,边听音乐的需求时,就会很困难;因为按照执行顺序,只能从上往下依次执行;同一时刻,只能执行听音乐和打游戏的其中之一。为了解决这样的问题,在程序设计中引入了多线程并发。本文中的知识对windows、ma...

「JAVA」详述Java异常体系,处理异常时配上finally效果更佳

2020-04-29
阅读 10 分钟
2.8k
从事Java开发的小伙伴对于“异常”应该不陌生,因为每天都会遇到不少异常,或捕获,或抛出。那究竟什么是异常?异常即非正常的,不同于平常、一般化的情况。在平时生活中,医生会说你身体的某个部位有异常,该异常会有什么什么的影响,是由某某原因引起的;我每天都准时打卡,按时上下班,那么我本月的考勤是正常的,反之...

「JAVA」细述合理创建字符串,分析字符串的底层存储,你不该错过

2020-04-25
阅读 5 分钟
1.9k
什么是字符串?如果直接按照字面意思来理解就是多个字符连接起来组合成的字符序列。为了更好的理解以上的理论,我们先来解释下字符序列,字符序列:把多个字符按照一定的顺序排列起来;而字符序列就是作为字符串的内容而存在的。所以可以把字符串理解为:把多个字符按照一定的顺序排列起来而构成的排列组合。

「JAVA」从语法到案例,从定义到使用,详细解释Java 内部类的完全实现

2020-04-19
阅读 4 分钟
3.1k
Java面向对象之内部类—inner class 内部类 Java 类中的可以定义的成员有:字段、方法、内部类,内部类是定义在类结构中的另一个类,因为定义在类的内部,故称为内部类。 {代码...} 在上述的代码示例中,就可以将InnerClass称之为OuterClass的内部类。 为什么使用内部类: 增强面向对象的封装,可以把一些不想对外的实现...

「JAVA」以周的案例引出Java 枚举,以单例设计模式实践Java 枚举

2020-04-17
阅读 4 分钟
1.9k
引出枚举 首先来考虑这样一个需求:判断一个员工(Employee)在一周的哪一天休息。 解决方案:定义一个类Weekday来表示周1到周日,在类中分别使用7个常量来表示周1到周日,代码如下: {代码...} {代码...} 运行案例: {代码...} 此时,上述的代码示例很清楚的解决了业务需求,引入的Weekday类很好的表示了从周一到周日。...

「JAVA」多态的灵魂,面向接口的程序设计,这才是你该懂得的接口(interface)

2020-04-15
阅读 4 分钟
4.5k
Java面向对象之接口——interface 什么是接口 一般计算机中的接口分为硬件接口和软件接口。 硬件接口:是指两个硬件设备之间的连接方式,既包括物理上的接口,还包括逻辑上的数据传送协议。 软件接口:通常是指程序代码,在Java中表示一种特殊的类,是具有的N个方法的特征集合,表示一种规范;还有一种情况数据接口,表示...

「JAVA」Java基础之冒泡排序、选择排序分析,简单、直观、明了

2020-04-09
阅读 2 分钟
1.1k
冒泡排序(Bubble Sort):排序思路:对要排序的数组或者列表从头到尾依次比较相邻的两个元素的大小关系,若大于则交换位置,否则跳过,经过第一轮比较排序后可得出最大值;

[JAVA] Java面向对象之final、abstract抽象、和变量生命周期

2020-04-02
阅读 8 分钟
2k
final是最终、不可修改的意思, 在Java中它可以修饰非抽象类,非抽象方法和变量。但是需要注意的是:构造方法不能使用final修饰,因为构造方法不能够被继承。下面,咱们就来一一看看吧!

[JAVA] Java面向对象三大特征:封装、继承、多态

2020-04-01
阅读 7 分钟
5.3k
面向对象三大特征:封装、继承、多态 高内聚和低耦合 面向对象的最终目的是要构建强健、安全、高效的项目,也就是要实现项目的高内聚和低耦合: 高内聚:把该模块的内部数据,功能细节隐藏在模块内部,不允许外界直接干预;只能通过公开的接口访问; 低耦合:该模块只需要给外界暴露少量功能方法;模块之间相互依赖的程...

[JAVA] Java面向对象之包装类,拆箱、装箱

2020-03-29
阅读 5 分钟
2.3k
包装类,拆箱、装箱——一切皆对象 为何要包装类 在面向对象中,”一切皆对象”,但基本数据类型的特殊存在不太符合这一理念,面向对象面向得并不纯粹,因为基本类型变量并不是对象; 涉及进制间的转换的算法,数据类型间的基本操作;如果都要我们来实现,那工作量就太大了; Java的集合框架并不支持基本数据类型的存储,只支...

[Windows] Windows 10 开启 WSL 拥抱Linux系统

2020-03-25
阅读 2 分钟
10.5k
Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。自Windows 10 WSL beta 发布以来,WSL 日渐成熟,也开始支持越来越多的Linux发行版,比如就有我比较喜欢的Arch Linux、Ubuntu、Kali-Linux、CentOS、Debian等多个Linux发行版。

[JAVA] 只知对象属性,不知类属性?就算类答应,static都不答应

2020-03-23
阅读 6 分钟
1.3k
在面向对象的思想中,一切事物都可以认为是对象——万物皆对象,把对象定义成包含状态和行为的一个实体,存在于现实世界中并且可以与其他实体区分开来的。对象具有状态和行为;比如:想想你心仪的小姐姐,可以把这个小姐姐看作是一个对象,那么该对象有两方面的定义:状态和行为;状态,如身高,年龄,三围,头发(长发或...

[JAVA] Java 数组、多维数组,动态、静态初始化,数组JVM内存模型分析

2020-03-22
阅读 4 分钟
2.2k
所谓数组,是具有相同数据类型的若干变量或者数据按照一定排序规则组合起来的一种数据存储格式。数组中的数据称为数组元素,我们使用索引来标识数组元素在数组中的存储位置,索引从0开始,步长是1,其后的索引依次递增:

[JAVA] CLASSPATH环境变量必须要配置吗

2020-03-21
阅读 2 分钟
6.5k
CLASSPATH直译过来是类路径,是Java环境配置中要设置的一个环境变量,就是.class文件的路径,表示JVM从哪里去寻找要运行的class文件,CLASSPATH = D:\java表示执行java命令时去D:\java目录中去找需要被执行的class文件并运行。

[JAVA] Java switch的使用细节

2020-03-21
阅读 1 分钟
2.4k
和if语句不同的是:if语句后面是根据其后的boolean表达式判断的,所以表达式的结构可以任意写,而switch只是相当于做“表达式 == 数值”的boolean表达式判断。相比较if来说,switch比较单一,仅仅只是对整数类型的判断,使用更简单。

[JAVA] 不仅有Java运算符,更有优先级讲解,可以说很详细了

2020-03-18
阅读 4 分钟
2k
算术运算符 Arithmetic operators 加号(+):在操作数值、字符、字符串时其结果各有不同; 字符相加得到的是ASCII码表值; 字符串相加时表示将字符串拼接在一起,得到的是组合后的新字符串; 两个数值相加表示数学中的加法运算; 除号(/):整数在使用除号操作时,得到的结果仍为整数,小数部分会被直接忽略,而不是四...

[JAVA] Java 变量、表达式和数据类型详解

2020-03-17
阅读 4 分钟
2.5k
变量: 表示存储空间,可用来存放某一类型(整数、小数...)的数据,没有固定值,变量值是可变的,可重复使用,也可以用来存储某种类型的未知数据。

[计算机基础] 计算机进制转换:二进制、八进制、十进制、十六进制

2020-03-16
阅读 3 分钟
14.5k
在生活中,我们通常都是使用阿拉伯数字计数的,也就是10进制,以10为单位,遇10进一,所以是由0,1,2、3、4、5、6、7、8、9组成的;而在计算机中,计算机是无法识别10进制数的,它只能识别01代码,也就是二进制,由0、1两位数字组成,逢二进一。

[JAVA] JAVA 8 环境安装配置

2020-03-15
阅读 3 分钟
4k
这里选择的是Oracle JDK,首先到Oracle官网下载JDK 8,以Windows 10操作系统为例,若是32位系统则下载“Windows x86”,否则64位系统下载“Windows x64”,本文选择的是Windows x64:

[JAVA] 初识Java, Java的跨平台实现原理

2020-03-13
阅读 2 分钟
1.4k
Java 是强静态类型的编程语言,是Sun Microsystems公司(简称sun,已于2009年被oracle收购)于1995年推出的高级程序设计语言;此类型的语言还有C#;Java可运行于Windows、Mac OSX、Linux、Solaris及其他多种类UNIX系统(如BSD)。