自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 常见排序算法

算法的稳定性和不稳定性:①排序算法

2020-09-16 22:56:48 72

原创 Linux安装nginx

先安装nginx所需插件。输入以下指令安装gccyum -y install gcc输入以下指令安装pcre、pcre-develyum install -y pcre pcre-devel输入以下指令安装zlibyum install -y zlib zlib-devel输入以下指令安装opensslyum install -y openssl openssl-devel至此,所需插件安装完成,输入以下指令下载nginx安装包wget http://nginx.org/downl

2020-09-04 11:21:14 147

原创 Linux安装JDK1.8

搜索jdk安装包:yum search java|grep jdk下载jdk1.8yum install java-1.8.0-openjdk出现如下图的提示,表明jdk已经安装完成。

2020-09-04 11:18:42 84

原创 Linux安装MySQL并开启远程访问

下载并安装MySQL官方的 Yum Repository。wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm使用上面的命令就直接下载了安装用的Yum Repository,然后就可以直接yum安装了。yum -y install mysql57-community-release-el7-10.noarch.rpm之后就开始安装MySQL服务器。yum -y install mysql-

2020-09-04 11:17:22 240

原创 Linux安装redis以及保持后台运行redis

下载制定版本wget http://download.redis.io/releases/redis-4.0.8.tar.gz移动到/opt目录mv redis-4.0.8.tar.gz /opt切换到/opt目录并解压cd /opttar -zxvf redis-4.0.8.tar.gz安装gccyum install gcc-c++编译安装makemake install切换目录cd /usr/local/bin/创建文件夹mkdir myconifg拷贝配

2020-08-28 17:48:05 1102

原创 Java零碎的记录

2020.08.26线程数量是不是越多越好?不是。CPU在切换线程时,需要保存上一个线程的信息,比如执行到哪里。再次执行这个线程时,又需要恢复线程。这些线程之间的切换会消耗CPU资源。当线程数量很多时,会浪费很多的时间来进行线程的切换,反而降低了效率。轻量级锁和重量级锁。轻量级锁不需要经过操作系统,重量级需要。CAS是实现轻量级锁的一种方式。早期的jdk版本中sync是重量级锁,之后才慢慢优化。CAS导致的ABA问题,可以通过添加版本号解决。另一个会产生的问题是比较和交换这个操作不是原子性操

2020-08-26 23:53:40 494

原创 Java反射笔记

反射在框架中运用的非常多,想深入框架或者读框架源码必须懂反射。优点:可以动态创建对象和编译,灵活性很高。缺点:效率比较低。Class类常用方法三种通过反射获取类的Class对象的方法1.通过类名.class获得。 Class<User> clazz = User.class;2.通过Class.forName(" ")获得。 Class<?> clazz = Class.forName("com.test.model.User");

2020-08-09 17:30:11 141

原创 Java虚拟机(JVM)入门及其常见面试题

JVM跟Java无关,任何可以编译为.class文件的都可以在JVM上运行。什么是垃圾 public static void main(String[] args) { Object object = new Object(); object = null; System.out.println(object); }上面的代码上,在object = null 之后,也就是当object这个变量指向另一块内存空间之后,原来的堆中的new .

2020-08-09 15:05:51 182

原创 Java通过双重校验锁实现线程安全的单例模式

public class Singleton { /*volatile关键字必须加。 new创建一个对象不是原子操作,分为三步 ①分配对象的内容空间 ②初始化对象 ③设置singleton引用指向刚分配的内存地址 并不能保证在所有情况下这能够顺序执行,②和③有可能会重排序,如果先执行了③, 那此时判断singleton == null为false,但此时还未真正初始化对象,return得到的就 是一个还没有初始化的对象 volatile关键字能防

2020-08-08 17:36:55 324

原创 synchronized和volatile关键字入门

volatile以一个例子来说明volatile的其中一个作用public class Test { public static void main(String[] args) { MyThread myThread = new MyThread(); myThread.start(); while (true) { if(myThread.isFlag()){ System.out.pr

2020-08-08 17:36:34 186

原创 Java多线程入门以及相关面试题

实现多线程的几种方式1.继承Thread类,重写run()方法;2.实现Runnable接口,重写run()方法;3.实现Callable接口,重写call()方法,call()可以有返回值,并且可以抛出异常,以上两种都不行。在实际开发中,以上三种方法都比较少用,通常是使用线程池来创建线程,在阿里巴巴开发手册中,强制线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。 Executors底

2020-08-08 12:29:00 110

原创 Java容器常见面试题详解

HashMap和HashTable的区别。1.HashMap是线程不安全的,效率比较高,HashTable很多方法都加了synchronized,是线程安全的,效率比较低。但实际上HashTable还是很少使用,ConcurrentHashMap也是线程安全的Map,不过它的效率比HashTable高很多,HashTable的锁是全表锁,每次锁整个数组,而ConcurrentHashMap的锁是分段锁,每次只锁数组中某个具体的桶,因此同时还可以对数组中其它桶进行操作,效率较高。2.HashMap默认初始

2020-08-07 11:28:44 211 2

原创 HashMap源码详解,JDK1.8版

和其他类的关系public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable一些重要属性默认的初始化大小,1逻辑左移四次,也就是16static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;默认的加载因子0.75,决定了HashMap什么时候扩容,当HashMap中元素

2020-08-06 13:53:21 121

原创 lombok使用及其可能带来的弊端

添加依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.22</version>...

2020-01-11 22:42:05 540

原创 SpringbootDataJpa条件查询和分页

public QueryResponseResult findAllPage(int page, int size, RequestData requestData){ if(requestData == null){ requestData = new RequestData(); } //自定义条件查询 ...

2019-12-03 16:40:55 721

原创 SpringBoot使用阿里云短信服务,使用了RabbitMQ中间件进行异步处理。

添加依赖 <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-dysmsapi</artifactId> <version>1.0.0</ver...

2019-12-03 15:52:58 697

原创 springboot拦截器拦截了swagger的解决方法

在拦截器的配置中把swagger的所有请求路径加到拦截器的排除列表@Configurationpublic class InterceptorConfig extends WebMvcConfigurationSupport { @Autowired private JwtInterceptor jwtInterceptor; protected void addIn...

2019-12-01 13:04:10 7559 2

原创 集中异常处理

@RestControllerAdvicepublic class BaseExceptionHandler { @ExceptionHandler(value = Exception.class) public Result exception(Exception e){ e.printStackTrace(); return new Resu...

2019-11-30 20:20:54 130

原创 阿里巴巴druid数据库连接池配置

<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</versi...

2019-11-30 19:25:28 1134

原创 springboot使用SpringDataRedis

首先,实体要先实现Serializable引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId&gt...

2019-11-30 19:18:12 65

原创 SpringDataJpa自动生成id的实体配置

@Data@ToString@Entity@Table(name="user")@GenericGenerator(name = "jpa-uuid", strategy = "uuid") @Id @GeneratedValue(generator = "jpa-uuid") @Column(length = 32)

2019-11-30 18:33:52 1773

原创 springboot使用security+token认证完成注册登录和权限管理

security实现加密和匹配密码导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> ...

2019-11-30 18:28:33 3454 1

空空如也

空空如也

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

TA关注的人

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