java
文章平均质量分 72
孤忆寒丶Z
这个作者很懒,什么都没留下…
展开
-
volatile和synchronized的区别
共性:volatile与synchronized都用于保证多线程中数据的安全区别:(1)volatile修饰的变量,jvm每次都从主存(主内存)中读取,而不会从寄存器(工作内存)中读取。而synchronized则是锁住当前变量,同一时刻只有一个线程能够访问当前变量(2)volatile仅能用在变量级别,而synchronized可用在变量和方法中(3)volatie仅能实现变量的修改可见性,无法保证变量操作的原子性。而synchronized可以实现变量的修改可见性与原子性(4)volati原创 2021-10-05 16:55:35 · 625 阅读 · 0 评论 -
SpringBoot 项目在Linux服务器上启动、停止脚本(详细)
SpringBoot 项目在Linux服务器上启动、停止脚本详细创建脚本在jar包目录,创建脚本,实际项目只需要修改包名1.进入可编辑,执行代码vim xxxxxx.shxxxxxx就是你自己创建的脚本名称,写好后按下回车后,进入此界面2.vim进入后是命令模式状态,要用i或者a命令或Insert键才可进入可编辑的状态(最下面会出现–INSERT–)。进行脚本的插入,复制粘贴,粘贴到终端即可脚本#!/bin/bashcd `dirname $0`CUR_SHELL_DIR=`p原创 2021-08-08 17:54:03 · 1254 阅读 · 0 评论 -
IDEA打包失败解决方案
项目打包时有时会出现各种各样的错误,这个时候就需要去解决出现这些错误时第一种点击它,代表跳过测试用例,选中状态代表关闭测试,先尝试一下看能否解决问题这时发现还是不能够解决问题第二种添加Maven的打包插件,问题描述Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources) on project ordersys: Input lengt原创 2021-08-08 16:34:25 · 5682 阅读 · 1 评论 -
服务器部署项目
项目部署1.点击控制台要将地区更换到你买的地区点击更多,点击密钥,重置你的密码重装系统一键点击重装系统,进行重装,在任何情况下都可以进行打开Xshell进入点击新建会话,名称随意,主机号填入你购入服务器的IPV4地址点击确定 之后输入你的用户名(默认为root)和自己设置的密码点击确定,就能够连接到自己的服务器...原创 2021-05-06 21:03:36 · 238 阅读 · 0 评论 -
Java内存模型
JVM定义了一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。不同操作系统操作内存时的性能差异(用到系统的缓存)1.主内存与工作内存ava内存模型的主要目标是定义程序中各个变量的访问规则,即在JVM中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量包括实例字段、静态字段和构成数组对象的元素,但不包括局部变量和方法参数,因为后两者是线程私有的,不会被线程共享。Java内存模原创 2021-06-06 00:22:29 · 68 阅读 · 0 评论 -
JVM(Java虚拟机)(1)
JVM1.JVM组成(5个部分)1.堆2.JVM栈(Java虚拟机栈)3.本地方法栈4.程序计数器5.元空间(JDK 1.8) JDK 1.7 方法区(永久代)2.类加载机制(JVM加载)3.垃圾回收4.JMM1.JVM组成(5个部分)1.堆new Object() 所有的对象都是存在此区域,此区域也是JVM中最大的一块区域JVM垃圾回收就是针对此区域2.JVM栈(Java虚拟机栈)a.局部变量:8大基础数据类型,对象的引用b.操作栈:每个方法都会对应一个操作栈c.动态链接:指向原创 2021-06-05 22:30:58 · 203 阅读 · 0 评论 -
多线程高阶
JUC常用类的应用JUC1.ReentrantLock2.信号量(semaphore)3.计数器(CountDownLauth)4.循环屏障(循环栅栏)HashMap 底层实现结构、负载因子,哈希冲突的解决等线程问题HashMap JDK 1.7死循环分析:JUC1.ReentrantLocka.lock要写在try之前b.一定要在final里面进行unlock().2.信号量(semaphore)方法:acquire(尝试获取锁,如果可以正常获取到,则执行后面的业务逻辑,如果获取失败,则阻塞原创 2021-06-05 14:45:33 · 130 阅读 · 0 评论 -
线程池创建线程
定义:使用池化技术来管理和使用现成的技术,就叫做线程池线程池的优势总体来说,线程池有如下的优势:(1)降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。(2)提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。(3)提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。线程池创建线程的7种方式1.创建固定个数的线程池设置线程的名称和优先级2.创建带缓存的线程池3.创建可以执行定时原创 2021-05-22 14:14:53 · 4453 阅读 · 0 评论 -
检查死锁的三种方式
检查死锁的三种方式1.jconsole.exe找到java的安装路径,点击jdk1.8.0_192 进入到bin路径下点击jconsole.exe即可查看那些线程出现了死锁,具体到代码多少行2.jvisualvm.exe依然在bin目录底下 找到并点击jvisualvm.exe即可检查到死锁点击Dump,即可查看死锁的详情信息第一行 线程名 死锁具体在代码那一行第二行 等待锁的内存地址第三行 锁的内存地址3.jmc.exe右键点击,然后点击启动JMX控制台即可查看原创 2021-05-12 12:46:20 · 5025 阅读 · 0 评论 -
异常和String类
认识异常和String类异常String类1. 创建字符串2. 字符串比较相等3. 字符串常量池4. 理解字符串不可变5. 字符, 字节与字符串6. 字符串常见操作7. StringBuffer 和 StringBuilder异常1 初识异常除以 0System.out.println(10 / 0);// 执行结果Exception in thread "main" java.lang.ArithmeticException: / by zero数组下标越界int[] arr = {1,原创 2021-01-20 23:57:03 · 167 阅读 · 0 评论 -
图书管理系统
JAVA 下的图书管理系统一 实现的要求1、简单的登录2、管理端整理书籍(该功能为可扩展功能)查阅书籍增加书籍删除书籍打印书籍列表退出3、用户端查询书籍借阅书籍归还书籍退出二 类的设计1 在Book包下创建Book类 和Booklist类Book类主要实现了书的一些基本知识和实现的方法public class Book { private String name; private String author; private int price;原创 2021-01-20 15:57:26 · 128 阅读 · 0 评论 -
面向对象
面向对象编程包继承多态抽象类接口包包(package) 是组织类的一种方式.使用包的主要目的是保证类的唯一性.导入包中的类可以使用 import java.util.导入各种需要的类静态导入使用 import static 可以导入包中的静态的方法和字段将类放到包中基本规则在文件的最上方加上一个 package 语句指定该代码在哪个包中.包名需要尽量指定成唯一的名字, 通常会用公司的域名的颠倒形式(例如 com.bit.demo1 ).包名要和代码路径相匹配. 例如创建 com.bi原创 2021-01-19 18:00:18 · 73 阅读 · 0 评论 -
类和对象
类和类的实例化类就是一类对象的统称。对象就是这一类具体化的一个实例。总的来说:类相当于一个模板,对象是由模板产生的样本。一个类,可以产生无数的对象。// 创建类class <class_name>{ field;//成员属性 method;//成员方法}// 实例化对象<class_name> <对象名> = new <class_name>();class为定义类的关键字,ClassName为类的名字,{}中为类的主体。类中的元原创 2020-12-27 12:14:46 · 220 阅读 · 0 评论 -
运算符和逻辑控制
1. 运算符1.1 算术运算符基本四则运算符 + - * / %a) int / int 结果还是 int, 需要使用 double 来计算.int a = 1;int b = 2;System.out.println(a / b);// 结果为 0b) 0 不能作为除数int a = 1;int b = 0;System.out.println(a / b)// 运行结果Exception in thread "main" java.lang.ArithmeticExcepti原创 2020-12-06 00:00:24 · 251 阅读 · 0 评论 -
java的开始
一个java文件中,只能有一个public classJava是一门半编译型、半解释型语言。先通过javac编译程序把源文件进行编译,编译后生成的.class文件是由字节码组成的平台无关、面向JVM的文件。最后启动java虚拟机来运行.class文件,此时JVM会将字节码转换成平台能够理解的形式来运行。JRE(Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境。JDK(Java Development Ki原创 2020-12-05 22:08:26 · 105 阅读 · 0 评论