自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

夏日清风

个人见解与经验之谈,欢迎指正讨论

  • 博客(24)
  • 资源 (1)
  • 问答 (1)

原创 Java volatile关键字最全总结:原理剖析与实例讲解(简单易懂)

一、简介volatile是Java提供的一种轻量级的同步机制。Java语言包含两种内在的同步机制:同步块(或方法)和volatile变量,相比于synchronized(synchronized通常称为重量级锁),volatile更轻量级,因为它不会引起线程上下文的切换和调度。但是volatile变量的同步性较差(有时它更简单并且开销更低),而且其使用也更容易出错。二、并发编程的3...

2018-06-13 17:28:14 49537 51

原创 Linux系统中修改/etc/sysctl.conf后,如何立即生效

/etc/sysctl.conf是系统控制文件,主要用于用于运行时配置内核参数等系统信息,它的内容全部对应于/proc/sys/目录及其子目录。修改完sysctl.conf中配置信息后,有以下两种方法使其生效:(1)重启机器reboot。但是一般不推荐,因为可能机器上正在运行的程序(2)使用如下命令刷新配置,使其立即生效。/sbin/sysctl -p /sbin/sysctl -w net.ipv4.route.flush=1...

2020-10-20 16:27:59 16

原创 Java设计模式之单例模式(实现、应用的详细总结)

一、单例模式简介 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种设计模式属于创建型模式,它提供了一种创建对象的最佳方式。单例模式类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。1.单例模式的定义 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例的访问方法。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设...

2020-09-09 15:40:34 56

原创 Spring boot项目Fortify漏洞扫描问题解决

一、背景 前段时间公司使用Fortify工具对项目源码进行安全漏洞扫描,结果报出Dynamic Code Evaluation: Unsafe Deserialization漏洞。整个项目是基于Spring boot框架开发的。二、问题源 Fortify工具明确指出该安全漏洞是由于引入了Spring Boot Actuator依赖导致的<dependency><groupId>org.springframework.boot</grou...

2020-09-01 20:22:49 122 3

原创 Java异常分类总结及try...catch异常捕获处理

一、异常简介Java中所有异常的根是Throwable类。该类有两个子类: Error和Exception。1.Error类 Error也称为错误,通常是由JVM错误或者系统奔溃等引起的,无法通过程序来解决,所以在程序中不需要主动捕捉处理。2.Exception类 Exception类又可以分为Checked异常和Runtime异常。checkedException异常在编译时期就可以知道是否会发生异常,如果不对这些异常进行抛出、捕获的话就无法通过编译。而RuntimeExc...

2020-09-01 20:02:12 32

原创 Maven依赖冲突的几种有效解决方法总结

一、问题描述 在项目开发中使用Maven管理Jar包时,常常会遇到Jar包依赖冲突。其根本原因是不同Jar包引用了同一Jar包的不同版本,从而在代码调用时,无法确定使用的是哪个版本的Jarba包。二、解决办法 解决这一问题的方法有多种,按照思路分为总结如下:1、第一声明原则 在pom.xml配置文件中,如果有两个名称相同,版本的不同依赖声明,先写的会生效,所以先声明自己要用的版本。这里的名称相同,版本不同的依赖声明,既可以是直接依赖,也可以是传递依赖。例如,b引...

2020-07-20 19:26:04 65

原创 如何将本地Jar包添加到本地的Maven仓库

一、问题描述项目开发过程中,经常遇到项目缺少依赖的问题。这些Jar包无法从远程仓库中下载,究其原因有以下几点:(1)依赖的Jar包是与该项目关联的公司其他项目(2)依赖的Jar包是其他公司开发,并未发布到远程仓库(3)网络原因导致从远程仓库中无法下载Jar包二、解决方案需要将依赖的Jar包从其他途径下载到本地,然后添加到本地仓库。这样在每次构建项目就能够从本地加载到依赖的Jar包。三、操作方法1.打开命令行cmd窗口2.执行mvn install以阿里的oceanba

2020-07-16 19:31:51 128

原创 深入理解Java中synchronized关键字的实现原理

9.synchronized的底层实现原理(1)对象大小的计算a. 在32位系统下,存放Class指针的空间大小是4字节,MarkWord是4字节,对象头为8字节。b. 在64位系统下,存放Class指针的空间大小是8字节,MarkWord是8字节,对象头为16字节。c. 64位开启指针压缩的情况下,存放Class指针的空间大小是4字节,MarkWord是8字节,对象头为12字节。 数组长...

2019-10-22 14:35:08 223

原创 Java同步锁synchronized的最全总结

一、并发同步问题  线程安全是Java并发编程中的重点,而造成线程安全问题的主要原因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同操作共享数据。因此,当存在多个线程操作共享数据时,需要保证同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再进行,这种方式就叫互斥锁。也就是说当一个共享数据被正在访问的线程加上互斥锁后,在同一个时刻,其他线程只能处于等待的状态...

2019-10-22 14:32:05 255

原创 如何使用Latex的bib生成网络资源参考文献

一、网络资源参考文献的格式在论文撰写过程中,如果需要引用网络资源作为参考文献,则参考文献的格式如下: [作者] [标题] [访问路径]其中作者表示的是网络资源的提供者或构建者,标题是网络资源的概括,年份是网络资源最近更新的时间,访问路径是网络资源的URL地址。二、网络资源的的bib格式(1)英文论文在引用网络资源时,一般使用@misc类型标签:@misc{引用...

2019-10-09 17:52:14 823

原创 Java中操作符分类与使用总结(看完这篇就够了)

一、算术操作符Java的算术操作符包括四则运算,加(+)、减(-)、乘(*)、除(/)以及取余(%)。(1)"+" 除了用于两个数的加法之外,还可以用于拼接字符串。即如果String类型元素与非String类型元素使用"+"连接,则编译器会尝试将后者转换为字符串。 System.out.println("a+b:" + (a+b)); //其中a和b是一个数值类型的变量(2...

2019-09-10 16:11:51 128

原创 深入理解Java内存回收机制

JVM通过GC(Garbage Collection,垃圾回收器)来回收堆和方法区中的内存,这个过程是自动执行的。说到Java GC机制,其主要完成3件事:确定哪些内存需要回收;确定什么时候需要执行GC;如何执行GC。JVM主要采用回收器的方式实现GC,主要的回收器有引用计数回收器和跟踪回收器。一、引用计数回收器(1)引用计数器采用分散式管理方式,通过计数器记录对象是否被引用。当计数器为0...

2019-09-10 15:01:04 614

原创 Java中this和super关键字的深入理解

一、this关键字(1)本质编译器在调用某个实例方法时,实际上会把当前的实例对象的引用作为第一个参数传递给方法,例如经过编译器的处理,分别变成Animal.weight(pig,300)、Animal.weight(dog,100)。而如果想从方法内部获取当前对象的引用,就有一个专门的关键字this,表示“调用方法的那个对象”的引用(如pig和dog)。(2)this的含义 1.在Java中,每...

2018-06-14 22:23:35 752

原创 Java中transient关键字的详细总结

一、概要介绍Java中的transient关键字,transient是短暂的意思。对于transient 修饰的成员变量,在类实例的序列化处理过程中会被忽略。 因此,transient变量不会贯穿对象的序列化和反序列化,生命周期仅存于调用者的内存中而不会写到磁盘里持久化。(1)序列化Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息,一个序列化后的对...

2018-06-14 22:15:12 11252 2

原创 Java中各类修饰符的使用总结(看完这篇就够了)

引言:Java的修饰符根据修饰的对象不同,分为类修饰符、方法修饰符、变量修饰符,其中每种修饰符又分为访问控制修饰符和非访问控制修饰符。访问控制存在的原因:a、让客户端程序员无法触及他们不应该触及的部分 b、允许库设计者可以改变类内部的工作方式而不用担心影响到客户端程序员。

2018-06-07 18:45:24 19115 10

原创 Java中的final、finally、finalize的区别

声明:本文只是简单介绍了三者之间的区别,三者的详细用法参见本人的其他文章。# 深入理解Java的final关键字# 浅析java的finally# Java 深入理解finalize()方法1. final是一个关键字,用来修饰变量、方法和类。修饰变量表示变量赋值后不可变,即常量。修饰方法表示方法不可覆盖。修饰类表示类不可继承,同时不能被abstract修饰。2. finally是异常处理结构的一...

2018-06-05 20:53:37 141

原创 Java异常处理之finally的使用总结

1.finally用法 (1)finally用在异常捕获中try/catch语句中,不论有没有发生异常或try/catch中出现return语句,finally中的语句都会被执行。 (2)finally必须使用在所有catch的最后位置,常用来处理一些后续的工作,如释放资源2.try、catch、finally中的return执行顺序 根据JVM规范,try/catch、finally的retu...

2018-06-05 20:33:15 101

原创 深入理解Java的final关键字

1.final关键字有几种用法(1)修饰变量 # 用final关键字修饰的变量,只能进行一次赋值操作,并且在生存期内不可以改变它的值。final修饰的变量可以先声明,后赋值。 # final修饰基本类型时,起到常量的作用,基本类型的值不可变。 final修饰引用类型时,不能再指向其他的对象,但被引用的对象 的值是可以改变的(引用变量的值 实际上是它所引用的对象的地址)。 ...

2018-06-05 13:36:30 3633

原创 Java 深入理解finalize()方法

1. 什么是finalize()方法?, finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作。另外,Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。2. finalize()方法什么时候被调用? 垃圾回收器GC在回收对象进行内存释放前会先调用finalize方法3. finali...

2018-06-05 13:25:40 445

原创 Java如何从字符串中提取数字

在使用java编程处理字符串时,常常需要获取字符串中的数字,来进行进一步的计算。接下来介绍几种从字符串中提取数字的方法。(1)正则表达式      这里正则表达式表示匹配除数字以外的字符,然后replaceAll方法使用空字符代替匹配的字符,这样剩下的字符串   就只包括数字。最后只需要将str转换为int类型就结束了(2)用字符串方法处理      这里通过一个f

2017-12-19 13:56:14 29691 7

原创 java中如何添加JTextArea到窗口

JMenuBar jb = new JMenuBar();    JTextArea ja = new JTextArea(50,30);     JScrollPane jsp = new JScrollPane(ja);    jf.setJMenuBar(jb);    jf.setSize(800, 600);    jf.setLayout(new B

2016-11-24 22:02:22 1097

原创 Java中如何根据图片文件创建Image对象,且将Image对象保存为文件形式

一.创建与保存1.根据一个文件路径创建Image对象 Image image = ImageIO.read(new File(filepath));2.将Image对象保存为文件形式 BufferedImage image = ImageIO.read(new File(filepath));//要想保存这个对象的话你要把image声明为BufferedImage 类型

2016-11-24 21:23:06 12539 1

转载 堆和栈的区别

 一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操作方式类似于数据结构中的栈。   2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回    收   。注意它与数据结

2016-10-11 21:35:11 133

转载 UML图之基础篇(用例图)

综述用例图(use case diagram)是指由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的视图。主要用来描述“用户、需求、系统功能单元”之间的关系。用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。用例图多用于静态建模阶段(主要是业务建模和需求建模),帮助开发团队以一种可视化的方式理解系统的功能需求。

2016-10-07 11:35:32 263

Introduction to SysML.pdf

用于帮助初学者系统地学习SysML语言,同时也可以作为一本工具书查看并解决系统建模过程中遇到的问题

2019-10-30

空空如也
提示
确定要删除当前文章?
取消 删除