自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (3)
  • 收藏
  • 关注

原创 JVM知识点总结

# 以下问题仅作为知识记录,有问题大家可以留言或私信一起讨论学习!1. 什么情况下会发生栈内存溢出?栈是线程私有的,栈的生命周期和线程是一样的,每一个方法执行的时候,都会创建一个栈帧,它包含了局部变量表,操作数栈,动态链接方法的出口等等。局部变量表又包含基本数据类型和对象的引用。当线程请求超过虚拟机允许的最大深度的时候,就会报栈内存溢出。​ 比如:方法递归调用的时候就会触发栈内存溢出。​ 解决:​ 可以通过调整参数来调整JVM的栈的大小。2.说说JVM的内存模型?JV.

2020-12-22 21:19:28 320

原创 如何控制线程执行的顺序?

1、如何控制线程执行的顺序?有三个线程,让这三个线程按照我们指定的顺序执行!!答:1.join()方法:让主线程等待其他线程执行完成之后执行。让主线程放弃cpu的控制权,等待调用join方法的线程执行完成之后再执行!join()方法底层调用的wait()方法,是让主线程等待其他线程执行完成之后执行。2.ExecutorService executor =Executors. newSingleThreadExecutor();在jdk1.5之后,所提供的一个多线程操作的api。创建一个只有一个线

2020-08-07 21:52:32 1046

原创 记一次挖矿病毒kdevtmpfsi,xmrig,定时任务crontab不能更改,及莫名的curl,导致CPU过高,占用网络连接数过大的解决办法

一、警告二、解决病毒1.docker 引发的挖矿程序的惨案(1)病毒原因(2)解决病毒2.定时任务crontab不能更改3.更改ssh端口4.莫名的curl,导致CPU过高三、完成一、警告 在linux中使用docker,redis,ssh,tomcat等 的时候,建议全部更改成自己自定义的端口,开启防火墙并开发自己需要的端口。二、解决病毒1.d...

2020-04-14 13:32:20 3348 1

原创 使用docker发布springboot项目并使用nginx配置域名进行访问

仅做笔记,也可参考!!一、在你的linux系统中安装docker二、使用idea创建springboot项目,并打成jar包三、写一个Dockerfile文件,并命名为:Dockerfile,文件内容如下:# 基础镜像使用javaFROM openjdk:8-jdk-alpine# VOLUME 指定了临时文件目录为/tmp。# 其效果是在主机 /var/lib/docke...

2019-12-24 10:17:03 1963

原创 The type of the function literal can't be inferred because the literal has a block as its body.

在写flutter代码的时候,出现标题所述的警告,只需要在代码上方添加以下注释即可消除警告// ignore: strong_mode_top_level_function_literal_block

2019-08-27 11:47:41 1533

原创 java使用极光推送根据tag进行定期定时发送自定义标题和内容

应公司需求开发,特此记录:java使用极光推送根据tag进行定期定时发送自定义标题和内容极光定时推送可参考官方代码:https://github.com/jpush/jpush-api-java-client/blob/master/example/main/java/cn/jpush/api/examples/ScheduleExample.java下面是自己写的测试代码 ...

2019-07-25 14:40:42 1537

原创 ERROR:id.so:object '/usr/local/lib/libkk.so' from /etc/id.so.preload cannot be preloaded: ignore

每次不知道什么时候linux虚拟机就出现这个错误,登录时也出现这个问题,现完美解决,特此记录1.进入linux单用户模式,具体如何进入请看https://jingyan.baidu.com/article/d45ad148a61dbd69552b8018.html2.进入单用户模式之后,其实就是相当于绕过用户名密码进入linux系统中,但是此时在linux执行命令还是会出现标题上提示的...

2019-07-23 15:35:37 1217

原创 linux中yum安装jdk

在linux上使用yum安装是非常粗暴无脑的,1.执行命令yum -y list java*查看可安装java版本。执行成功后可以看见如下的结果2.选择一个java版本进行安装,这里我们希望安装java1.8,因为我们的机器是64位的,所以选择安装java-1.8.0-openjdk-devel.x86_64。注意要选择-devel的安装,因为这个安装的是jdk,而那个不带-...

2019-07-03 19:39:41 785

转载 Docker启动Get Permission Denied

安装完docker后,执行docker相关命令,出现”Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial un...

2019-07-01 17:50:14 284

原创 让linux命令行提示符显式完整路径

1.编辑profile文件,添加环境变量PS1 [/etc/profile] export PS1='[\u@\h `pwd`]\$' 2.source $>source /etc/profile

2019-06-28 10:45:18 1281

原创 Hadoop配置本第独立模式和伪分布模式

最好的是,看官网配置Hadoopstandalone(本地模式、独立模式) 什么都不需要干,不需要启动单独的hadoop进程,使用的就是本地系统,无守护进程在运行 Pseudodistributed mode(伪分布模式),使用到那个功能可以相对应的配置那个功能 进入${HADOOP_HOME}/etc/hadoop目录 编辑core-site.xml ...

2019-06-28 10:44:24 283

原创 GC垃圾回收算法和垃圾收集器的关系?分别是什么?

GC算法(引用计数/复制/标清/标整)是内存回收的方法论,垃圾收集器就是算法落地实现。因为目前为止还没有完美的收集器出现,更加没有万能的收集器,只是针对巨日应用最合适的收集器,进行分代收集4中主要的垃圾收集器:1.串行垃圾回收器(Serial)--->它为单线程环境设计且只使用一个线程进行垃圾回收,会暂停所有的用户线程,不适合服务器环境2.并行垃圾回收器(Paralle...

2019-06-25 17:55:42 1207

原创 创建线程的四大方法及线程池的七大参数

为什么要使用线程池?线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后再线程创建后启动这些任务如果线程的数量超过最大数量,超过数量的线程将排队等候,等其他线程执行完毕,再从队列中取出任务来执行特点:线程复用,控制最大并发数,管理线程一、降低资源消耗,通过重复利用已创建的线程降低线程创建和销毁造成的消耗二、提高响应速度,当任务到达时,任务可以不需要的等到线程创建就...

2019-06-19 11:10:58 11580

原创 SQL 练习

CREATE DATABASE /*!32312 IF NOT EXISTS*/`test1` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `test1`;/*Table structure for table `course` */DROP TABLE IF EXISTS `course`;CREATE TABLE `course` (...

2019-06-14 16:04:23 629

原创 从文件中读取字符串数据,反序显示并大小写转换

public static void main(String[] args) { String filePath = "D:/test.txt"; readTxt(filePath); } /** * 读取文件 * @param filePath */ public static void read...

2019-05-28 14:39:31 902

原创 用一条 SQL 语句 查询出每门课都大于 80 分的学生姓名

create table score(id int primary key auto_increment,name varchar(20),subject varchar(20),score int);insert into score values (null,'张三','语文',81),(null,'张三','数学',75),(null,'李四','语文',76),(null...

2019-05-27 10:42:36 12496 1

原创 列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序

1.创建表: create table employee( id int primary key auto_increment, name varchar(5 0), salary bigint, deptid int);2.插入实验数据: insert into employee921 values(null,'zs',1000,1),(n...

2019-05-25 18:12:37 1355

原创 MySQL删除数据库中重复的数据,并保留一条

1.先创建数据库#创建数据库CREATE DATABASE student;2.创建表#创建表test1,字段为id,name,主键id自增CREATE TABLE IF NOT EXISTS test1( id INT UNSIGNED AUTO_INCREMENT, NAME VARCHAR(100) NOT NULL, PRIMARY KEY(id))ENGINE...

2019-05-21 22:10:21 455

转载 单例模式八种不同的写法及比较

单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。一般介绍单例模式的书籍都会提到饿汉式和懒汉式这两种实现方式。但是除了这两种方式,本文还会介绍其他几种实现单例的方式,让我们来一起看看吧。简介单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某...

2019-05-21 18:24:41 439

原创 static 代码段

class A{ static{ System.out.print("1"); } public A(){ System.out.print("2"); }}class B extends A{ static{ System.out.print("a"); } public B(){ ...

2019-05-21 16:18:01 613

转载 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?

1.多线程有4种实现方法继承Thread类,重写run方法 实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target 通过Callable和FutureTask创建线程 通过线程池创建线程同步的实现方面有两种,分别是synchronized,wait与notify2.wait():使一个线程处于等待状态,并且释放所持...

2019-05-21 11:59:21 15917 1

转载 什么是Web Service?

  Web Service就是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以WebService可以在任何支持这些标准的环境(Windows,Linux)中使用。  注:SOAP协议(Simple Object AccessProt...

2019-05-21 11:36:02 232

转载 XML的四种解析方法

XML文档以层级标签的形式来组织数据,多用于配置文件、存储静态数据、交换数据。 XML语法 1每个XML文档都由XML序言开始,在前面的代码中的第一行便是XML序言,<?xmlversion="1.0"?> 2任何的起始标签都必须有一个结束标签。   3标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签。 4标签如果...

2019-05-21 10:57:36 799

转载 EJB是基于那些技术实现的?并说出SessionBean和EntityBean的区别?

EJB并不是一个产品。它是java服务器端服务框架的规范,软件厂商根据它来实现EJB服务器。应用程序开发者可以专注于支持应用所需的商业逻辑,而不用担心周围框架的实现问题。EJB规范详细的解释了一些最小但是必须的服务,如事务,安全和名字等。软件厂商根据这些规范要求以保证一个enterprise bean能使用某个必须的服务。规范并没有说明厂商如何实现这些服务。这使得通过阅读规范来学习EJB更加困...

2019-05-21 10:48:11 232

转载 forward和redirect的区别

一:间接请求转发(Redirect)  间接转发方式,有时也叫重定向,它一般用于避免用户的非正常访问。例如:用户在没有登录的情况下访问后台资源,Servlet可以将该HTTP请求重定向到登录页面,让用户登录以后再访问。在Servlet中,通过调用response对象的SendRedirect()方法,告诉浏览器重定向访问指定的URL,示例代码如下: ......//Servlet...

2019-05-21 10:25:11 164

原创 Hashtable的原理,并说出HashMap与Hashtable的区别

HashTableHashtable 是一个散列表,与HashMap相同,它存储的内容是键值对(key-value)映射。Hashtable 方法都是synchronized修饰的,说明Hashtable是线程安全的,它的key、value都不可以为null。Hashtable<String, Object> map = new Hashtable<>()...

2019-05-21 00:00:13 1192

原创 抽象类和接口的区别

抽象类 接口 默认的方法实现 既含有默认的方法实现,又含有抽象方法 接口中的方法完全是抽象的。它根本不存在方法的实现 实现 子类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方法的实现。 子类使用关键字implements来实现接口。它需要提供接口中所有声明的方法的实现。 构造器 抽象类可以有构造...

2019-05-20 23:26:53 85

原创 java公平锁/非公平锁/可重入锁/递归锁/自旋锁/独占锁/共享锁

一、公平和非公平锁公平锁:多个线程按照申请锁的顺序来获取锁,类似排队打饭,先来后到非公平锁:是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁在高并发情况下,有可能会造成优先级反转或者饥饿现象。并发包中ReentrantLock的创建可以指定构造函数的Boolean类型来得到公平锁或非公平锁,默认是非公平锁,源码分析: //...

2019-05-16 18:50:27 399

原创 java中传值问题

Person实体类public class Person { public void setPersonname(String personname) { this.personname = personname; } private String personname; public Person(String personname) {...

2019-05-16 10:18:55 169

原创 生产环境服务器变慢,诊断思路和性能评估!Linux

1.linux执行top命令看top显示页面的右上角,load average有三个值,代表的是系统一分钟,五分钟,十五分钟系统的平均负载值。如果三个值相加除以3再乘以100%高于60% 说明系统的负担压力重查看系统命令的精简版 uptime2.vmstat -n 2 3vmstat -n 2 3一般vmstat工具的使用时通过两个数字参数来完成的,第一个参...

2019-05-15 17:32:45 943

原创 多线程情况下HashMap集合类不安全的问题及解决方式

接着上一篇,本篇直接上代码: //Map<Object, Object> map = new HashMap<>(); //Map<Object, Object> map = Collections.synchronizedMap(new HashMap<>()); Map<Object, O...

2019-05-15 15:45:38 518

原创 多线程情况下HashSet集合类不安全的问题及解决方式

在多线程情况下,使用Set<Object> set = new HashSet<>();会产生 java.util.ConcurrentModificationException异常解决方式: Set<Object> set = Collections.synchronizedSet(new HashSet<>()); ...

2019-05-15 14:39:49 5389 1

原创 HashSet的底层是什么?为什么add方法只添加一个参数?

HashSet的底层是HashMap原码: /** * Constructs a new, empty set; the backing <tt>HashMap</tt> instance has * default initial capacity (16) and load factor (0.75). * 创建一个新的Ha...

2019-05-15 14:32:26 424

原创 多线程情况下ArrayList集合类不安全的问题及解决方式

import java.util.*;import java.util.concurrent.CopyOnWriteArrayList;/** * @Auther: YongXuezhen * @Date: 2019/5/13 16:51 * @Description: 多线程情况下集合类不安全的问题,add方法没有加锁 */public class ContainNotSaf...

2019-05-14 16:35:44 1438 1

原创 CAS导致的“ABA”问题,如何解决

CAS算法实现一个重要前提需要取出内存中某时刻的数据并在当下时刻比较并替换,那么这个时间差异会导致数据的变化。比如说,一个线程one从内存位置V中取出A,这个时候另一个线程two也从内存中取出A,并且线程two进行了一些操作将值变成了B,然后线程two又将V位置的数据变成A,这个时候线程one进行CAS操作发现内存中仍然是A,然后线程one操作成功。尽管线程one的CAS操作成...

2019-05-13 12:06:31 822

原创 CAS的理解

简单来说,就是比较并交换,如果前一个值是预期值,则执行成功;如果不是预期值,则执行不成功。import java.util.concurrent.atomic.AtomicInteger;/** * @Auther: YongXuezhen * @Date: 2019/5/9 12:19 * @Description: * * 1.CAS是什么?===>compareAn...

2019-05-13 09:57:34 1105 1

原创 单例模式的DCL加volatile保证线程安全及高并发

先上Demopublic class SingletonDemo { private static volatile SingletonDemo instance =null; private SingletonDemo(){ System.out.println(Thread.currentThread().getName()+"\t 我是构造方法Sin...

2019-05-08 11:38:34 229

原创 JMM和volate的禁止指令重排

计算机在执行程序时,为了提高性能,编译器和处理器常常会对指令做重排,一般分为以下三种单线程环境里面确保程序最终执行结果和代码顺序执行的结果一致 处理器在进行重排序时必须考虑指令之间的数据依赖性 多线程环境中线程交替执行,由于编译器优化重排的存在,两个线程中使用的变量能否保证一致性是无法确定的,结果无法预测代码demo如下public class ReSortSeqDemo ...

2019-05-08 08:49:55 887

原创 JMM和volatile不保证原子性原因及说明及解决方式

先上Demo代码import java.util.concurrent.TimeUnit;class MyData{ volatile int number = 0; //此时number是加了volatile修饰的 public void addPlusPlus(){ number++; }}/** * 1.验证volatile...

2019-05-07 16:35:59 835 1

原创 idea的模板化开发

打开idea的setting,一图解决

2019-05-07 15:14:35 971 2

SpringBoot版本的多线程下载文件,分段下载文件

新鲜出炉的SpringBoot版本的多线程下载文件,可以拿来整合SpringBoot项目或者SSM项目,可直接运行测试!!!

2020-11-24

jpush定期推送

java使用极光推送根据tag进行定期定时发送自定义标题和内容,内涵页面整合,完整代码代码整合,及嵌入自己项目方式

2019-07-29

整理国家选择jQuery中文插件

jQuery整理的国家选择的插件,带有搜索功能,带有国旗标识,开发者可以用此插件整合到自己的项目需要的地方

2019-05-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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