前言
这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些问题讲的不对,能指正的希望大家不吝指教。
1、多线程有什
上一篇我们看了一下这个队列ConcurrentLinkedQueue,那就是一个无界非阻塞链表,我们这次来看看LinkedBlockingQueue,这个队列看名字就知道是一个阻塞式队列(也就是一个单向链表),基于独占锁实现的,比较简单;
一.LinkedBlockingQueue
并发编程之线程第二篇
3.12 五种状态
3.13 六种状态
4.1 共享带来的问题
4.2 synchronized解决方案
4.4 变量的线程安全分析
4.6 Monitor概念
1. 轻量级锁
2. 锁膨胀
3.12 五种状态
这是从操作系统层面来描述的
【初
1.查看linux位数
查看linux是32位还是64位,影响需要下载JDK的版本
系统位数
jdk位数
x86(32位)
32位
x86_64(64位)
32位
64位
在linux命令输入:
uname -a
如果是64位机器,会输出x86_64
JavaSE学习笔记(6)---异常
软件程序在运行过程中,非常可能遇到问题,我们称之为异常,英文是:Exception,意思是例外。遇到这些例外情况,或者叫异常,我们怎么让写的程序做出合理的处理,安全的退出,而不至于程序崩溃呢?
1.异常产生的原因及使用原则
在 Java 中一个异常
一、数字类
1.关于数字格式化:java.text.DecimalFormat;
2.数字格式元素:
# 任意数字
, 千分位
. 小数点
0 不够补零
package com.bjpowernode.java_learning;
im
在了解完什么是数据结构之后,让我们一起来探索下数据结构中常见的一种—链表。
链表
链表是数据结构之一,其中的数据呈线性排列。在链表中,数据的添加和删除都较为方便,就是访问比较耗费时间。
如上图所示就是链表的概念图,Blue、Yellow、Red 这 3 个字符串作为数据被存储于链表中,也
本篇文章主要来介绍什么是数据结构。
首先让我们来看一张图片:
数据存储于计算机的内存中。内存如上图所示,形似排成 1 列的箱子,1 个箱子里存储 1 个数据。
数据存储于内存时,决定了数据顺序和位置关系的便是数据结构。
其实在我们生活中用到很多数据结构的知识,那么举一个我们生活中的栗子:
环境
springBoot+JPA+MySQL
application-dev.yml
注意:配置中的blog数据库需要先创建,否则启动springBoot会报错
1 spring:
2 #数据库连接配置
3 datasource:
4 driver-clas
更新记录
【1】2020.02.09-11:14
1.完善了文章
正文
在学习异常处理这一章时,我写了一段代码用来模拟异常的发生:
public class exception {
public static void main(String[] args) {
说出来怕你们不相信,刚接到物业通知,疫情防控升级了,车辆只能出不能进,每户家庭每天可指派 1 名成员上街采购生活用品。这不是谣言,截个图自证清白,出自洛阳市湖北路街道处。
看来事态严峻,这样看似好心,但不一定办好事,去超时抢购的人会更多。不管了,只能窝在家做持久战了。趁这段时间,多分享一些
SpringBoot提供了大量的默认配置,如果要修改默认配置,需要在配置文件中修改。
SpringBoot默认会加载resource下的配置文件:
application*.yml
application*.yaml
application*.properties
这也是配置文件的
类定义---方法及其处理的数据对象的集合结构
将现实的对象(物体)和概念映射到程序中的对象(变量)中
1:使用new运算符创建的类类型的主体称为实例,创建实例的操作称为实例化,
new Account()实例化了一个Account实例;
2:对象就是对程序运行时动态创建的主体的总称
项目太大,不好直接测整个项目,一般都是切割成多个单元,单独测试,即单元测试。
直接在原项目上测试,会把项目改得乱七八糟的,一般是单独写测试代码。
进行单元测试,这就需要集成JUnit。
(1)在pom.xml中添加JUnit的依赖
<!--J
(1)在pom.xml中添加依赖
<!--去掉springboot默认的日志-->
<dependency>
<groupId>org.springframework.boot</gro
上一篇我们说了并发队列中的LinkedBlockingQueue队列,这次我们看看ArrayBlockingQueue,看看名字,我们想象一下LinkedList和ArrayList的区别,我们可以知道ArrayBlockingQueue底层肯定是基于数组实现的,这是一个有界数组;
注意:可变参数类型是在jdk1.5版本的新特性,数组类型是jdk1.0就有了。
这篇文章主要介绍了Java方法的可变参数类型,通过实例对Java中的可变参数类型进行了较为深入的分析,需要的朋友可以参考下。
Java方法中的可变参数类型是一个非常重要的概念,有着非常广泛的应用。本文就以实
Lamda表达式学习笔记二
lamda表达式----方法引用
上一篇讲到Lamda体就是对函数式接口方法的实现 ,在方法体中我们可能会引用其他方法实现逻辑,所以在lamda体中我们可以直接引用器方法
I 对象::实例方法名
/**
* 对象::实例方法名
*/
JavaSE学习笔记(4)---抽象类和接口
抽象方法和抽象类
·抽象方法
使用abstract修饰的方法,没有方法体,只有声明。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。
特点
抽象方法必须声明在抽象类中。
抽象方法声明引入了一个新方法,但不提供该方法的实现,由于
JavaSE学习笔记(5)---内部类和String类
一.内部类基础
转自菜鸟教程
在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部