- 博客(852)
- 收藏
- 关注
原创 Java知识点串联
简单工厂模式(又名:静态工厂方法模式):定义: 由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 父类定义了创建对象的接口,但是由子类来具体实现,工厂方法让类把实例化的动作推迟到了子类当中,对象的创建由子类来完成。 作用: 实例化对象的时候不再使用 new...
2020-03-23 17:10:31
753
原创 cmd:No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
我的项目是springboot进行开发,用的idea开发工具:首先来看看我的打包配置:<!--打war包第一步-->添加依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tom...
2020-03-15 10:59:21
1246
1
原创 阿里云centos7服务器部署springboot项目,项目打包,上传,安装jdk8、tomcat8、mysql5.7
0、首先需要购买阿里云轻量级服务器,我卖的是学生机套餐。系统我选择centos7。24岁并且身份证认证了的,可以去卖学生套餐,学生套餐地址:https://promotion.aliyun.com/ntms/act/campus2018.html本来想图个便宜买个单品,发现一直选不了:老是弹出这个东西,怎么选都是这样。实在没办法,逼我去买阿里云学生套餐:他丫的竟然可以选...
2020-03-14 19:02:39
1115
原创 如何阅读、如何学习、只要掌握这一招,效率将快出十倍以上
我们在平常看文档也好,看别人写的文章也好,总是喜欢把作者的原话给过脑子一遍,其实不能这样,人家的原话,人家文章的一整句话,都是作者自己的思路总结出来的,不同人有不同的思路,你硬是把别人的思路给装进自己的大脑里,你可能会忘记作者总结出来这句话的本意内容具体是啥,因为你大脑需要先去思考整句话的逻辑,好比把一句话的字顺序给打乱了,你照样能够看懂这句话的字体表达意思,我们平常看文章也好,不需要把整句话一个...
2020-03-11 15:33:42
306
转载 Mysql练习之 学生表、课程表 、教师表、成绩表 50道练习题
--建表--学生表CREATE TABLE `Student`( `s_id` VARCHAR(20), #编号 `s_name` VARCHAR(20) NOT NULL DEFAULT '', #姓名 `s_birth` VARCHAR(2...
2020-03-10 12:27:19
2958
原创 Java面试中被问问题回忆录
第一家游戏公司:1、接口和抽象类的区别?什么时候选择使用它们?2、arraylist和linkedlist的区别?3、说下线程的有哪些状态?启动线程是哪个方法?4、平常用过多线程吗?5、你用过spring哪些设计模式?讲下你用过的。5、说下你项目这一块的业务的流程,怎么去做的,是在sql里实现,还是在代码里?第二家外包公司:1、spring事务,事务原理,怎么...
2020-03-10 11:29:37
393
2
原创 'redis.clients.jedis.JedisPool' that could not be found
***************************APPLICATION FAILED TO START***************************Description:Field jedisPool in com.jcn.redis.service.RedisService required a bean of type 'redis.clients.jedis.Je...
2020-02-26 15:56:05
4729
原创 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.xxxxxxxx
错误信息:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'login_acct' in 'class com.jcn.entity.MyAd...
2020-02-22 16:25:43
816
原创 Cannot resolve com.mysq.jdbc.Connection.ping method. Will use 'SELECT 1' instead.
mysql和druid版本的匹配问题。我本地mysql5.7,druid需要对应1.1.10。
2020-02-22 16:08:50
1572
转载 非对称加解密,私钥和公钥到底是谁来加密,谁来解密
第一种用法:公钥加密,私钥解密。---用于加解密第二种用法:私钥签名,公钥验签。---用于签名有点混乱,不要去硬记,总结一下:你只要想:既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密;既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名,所以可得出私钥负责签名,公钥负责验证。同一种道理,我在换种说法:私钥和公钥是...
2020-02-18 21:00:37
446
转载 终于把spring中的设计模式给理解清楚了
no.1Spring中涉及的设计模式总结1.简单工厂(非23种设计模式中的一种)实现方式:BeanFactory。 Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但...
2020-02-18 19:24:06
1189
转载 github骚操作
Github,一个被业内朋友成为「全球最大的同性交友社区」的平台。小时候遇到不会的字可以查新华字典。后来写作文我们可以通过作文书、或者文摘去找合适的素材。同样,写代码可以去Github上找适合自己的代码片段,甚至开源框架。不再重复造轮子,带来的好处不言而喻。 Github在年初宣布个人私有仓库免费,小伙伴们拍手叫好。除了日常的托管代码功能以外。还可以在上面搭建博客,写技术教程或...
2020-02-18 19:12:47
228
转载 生产环境中常用的Linux命令详解
top命令top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占...
2020-02-18 19:04:45
1603
转载 Spring Boot引起的“堆外内存泄漏”排查及经验总结
背景为了更好地实现对项目的管理,我们将组内一个项目迁移到MDP框架(基于Spring Boot),随后我们就发现系统会频繁报出Swap区域使用量过高的异常。笔者被叫去帮忙查看原因,发现配置了4G堆内内存,但是实际使用的物理内存竟然高达7G,确实不正常。JVM参数配置是“-XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M -XX:+AlwaysPre...
2020-02-18 18:45:24
890
转载 gc七种垃圾收集器及g1原理
七种垃圾收集器1、垃圾收集器概述垃圾收集器是垃圾回收算法(标记-清除算法、复制算法、标记-整理算法、火车算法)的具体实现,不同商家、不同版本的JVM所提供的垃圾收集器可能会有很在差别,本文主要介绍HotSpot虚拟...
2020-02-18 18:36:44
2341
转载 Java jvm所有参数以及关于jvm调优
参数汇总一、java启动参数共分为三类:其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;其三是非St...
2020-02-18 13:30:24
3589
2
转载 关于gc roots的理解
gc roots是什么所谓“GC roots”,或者说tracing GC的“根集合”,就是一组必须活跃的引用。例如说,这些引用可能包括:所有Java线程当前活跃的栈帧里指向GC堆里的对象的引用;换句话说,当前所有正在被调用的方法的引用类型的参数/局...
2020-02-18 12:57:48
1765
转载 Java线程池的工作原理
线程池源码解读随着cpu核数越来越多,不可避免的利用多线程技术以充分利用其计算能力。所以,多线程技术是服务端开发人员必须掌握的技术。线程的创建和销毁,都涉及到系统调用,比较消耗系统资源,所以就引入了线程池技术,避免频繁的线程创建...
2020-02-18 12:41:44
247
转载 关于阿里开发手册不让用Executor创建线程池的解释
Executors是一个工具类,直接使用Executors可以调用JDK为我们提供的线程池方法。Executors.newCachedThreadPool();//创建可缓存的线程池Executors.newFixedThreadPool(1);//创建固定大小的线程池Executors.newSingleThreadExecutor();//创建单线程池-n...
2020-02-17 21:28:22
540
转载 关于为什么有synchronized还要lock的回答
为什么java已经通过synchronized关键字实现同步访问了,还需要提供Lock?synchronized的缺陷前面博客有提到过释放对象的锁有两种情况:程序执行完同步代码块会释放代码块。程序在执行同步代码块是出现异常,JVM会自动释放锁去处理异常。如果获取锁的线程需要等待I/O或者调用了sleep()方法被阻塞了,但仍持有锁,其他线程只能干巴巴的等着,这样就会很影响程序效率。...
2020-02-17 21:14:31
669
转载 线程池的7个参数
在Java中,我们一般通过集成Thread类和实现Runnnable接口,调用线程的start()方法实现线程的启动。但如果并发的数量很多,而且每个线程都是执行很短的时间便结束了,那样频繁的创建线程和销毁进程会大大的降低系统运行的效率。线程池正是为了解决多线程效率低的问题而产生的,他使得线程可以被复用,就是线程执行结束后不被销毁,而是可以继续执行其他任务。(这里可以用tomcat做例子进行思考)...
2020-02-17 21:12:36
297
转载 关于cookie和session最全解释
cookie和session1. 由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你点击下单按钮时,由于HTTP协议无状态,所以并不知道是哪个...
2020-02-17 21:00:50
4238
1
转载 在分布式环境下解决springmvc传统文件上传所带来的弊端
一、文件上传说明:传统方式的文件上传,指的是我们上传的文件和访问的应用存在于同一台服务器上。并且上传完成之后,浏览器可能跳转。1. 第一步:创建 maven 工程并导入 commons-fileupload 坐标1 <dependency>2 <groupId>commons-fileupload</groupId>3 <artifa...
2020-02-17 14:19:48
507
转载 java.lang.OutOfMemoryError异常完全指南
我的职业生涯中见过数以千计的内存溢出异常均与下文中的8种情况相关。本文分析什么情况会导致这些异常出现,提供示例代码的同时为您提供解决指南。-- Nikita Salnikov-Tarnovski (Plumbr Co-Founder and VP of Engineering)本文内容来源于Plumbr,对原文内容有删减和补充这也许是目前最为完整的Java OOM...
2020-02-16 20:57:28
3897
转载 Java 阻塞队列--BlockingQueue
1. 什么是阻塞队列?阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。阻塞队列提供了四种处理方法:...
2020-02-16 20:48:36
406
转载 读写锁ReentrantReadWriteLock的实现原理
前言前面介绍了java中排它锁,共享锁的底层实现机制,本篇再进一步,学习非常有用的读写锁。鉴于读写锁比其他的锁要复杂,不想堆一大波的文字,本篇会试图图解式说明,把读写锁的机制用另外一种方式阐述,鉴于本人水平有限,如果哪里有误,请不吝赐教。公平读写锁ReentrantReadWriteLock的锁策略有两种,分为公平策略和非公平策略,两者有些小区别,为便于理解,本小节将以示例的形式来说明多线...
2020-02-16 20:36:07
458
1
转载 不可重入锁(自旋锁)带来的好处
什么是自旋锁多线程中,对共享资源进行访问,为了防止并发引起的相关问题,通常都是引入锁的机制来处理并发问题。获取到资源的线程A对这个资源加锁,其他线程比如B要访问这个资源首先要获得锁,而此时A持有这个资源的锁,只有等待线程A逻辑执行完,释放锁,这个时候B才能获取到资源的锁进而获取到该资源。这个过程中,A一直持有着资源的锁,那么没有获取到锁的其他线程比如B怎么办?通常就会有两种方式:1....
2020-02-16 20:31:11
3661
转载 可重入锁(递归锁)ReentrantLock的实现:排他锁(公平锁和非公平锁)
前言Java语言中有许多原生线程安全的数据结构,比如ArrayBlockingQueue、CopyOnWriteArrayList、LinkedBlockingQueue,它们线程安全的实现方式并非通过synchronized关键字,而是通过java.util.concurrent.locks.ReentrantLock来实现。 刚好对这个很感兴趣, 因此写一篇博客详细分析此 “可重入锁实现原理...
2020-02-16 19:52:25
826
转载 token带来的好处
摘要: Token 是在服务端产生的。如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端。前端可以在每次请求的时候带上 Token 证明自己的合法地位不久前,我在在前后端分离实践中提到了基于 Token 的认证,现在我们稍稍深入一些。通常情况下,我们在讨论某个技术的时候,都是从问题开始。那么第一个问题:为什么要用 Toke...
2020-02-16 19:03:43
4522
转载 集合类不安全问题及解决方案
一、List1、代码演示 1 2 3 4 5 6 7 8 9 10 11 12 13 publicclassArrayListNotSafeDemo { publicstaticvoidmain(String[] args) {...
2020-02-16 18:25:38
358
转载 什么时候需要AtomicReference?
问:既然在java中引用的赋值操作本身就是是原子的,那为什么还需要AtomicReference(原子引用)?答:如果仅需要通过赋值操作改变一个引用,确实不需要AtomicReference。// 注意volatile关键字volatile Person person = new person("Jim");public void processA() { // 赋...
2020-02-16 15:03:31
7398
转载 jvm reference
JDK1.2之后,把对象的引用分为四种状态,即强引用、软引用、弱引用和虚引用。这样的方式,可以更加灵活地控制对象的生命周期。一、强引用开发中用的最多的就是强引用了。强引用声明格式:String str="abc";只要某个对象与强引用关联,那么JVM在内存不足的情况下,宁愿抛出outOfMemoryError错误,也不会回收此类对象。【1】如果我们想要JVM回收此类被强...
2020-02-16 14:54:32
850
转载 07、通过springdata jpa操作数据库
我们在上一篇搭建了一个简单的springboot应用,这一篇将介绍使用spring-data-jpa操作数据库。新建一个MySQL数据库,这里数据库名为springboot,建立user_info数据表,作为我们示例操作的表对象。user_info信息如下: 1 2 3 4 5 6 7 8 9 10 ...
2020-02-12 17:31:17
269
转载 06、从源码解析 Spring JDBC 异常抽象
初入学习 JDBC 操作数据库,想必大家都写过下面的代码:数据库为:H2如果需要处理特定 SQL 异常,比如 SQL 语句错误,这个时候我们应该怎么办?查看SQLException源码,我们可以发现两个重要的方法。SQLException.getErrorCode:返回数据库特定的错误码,由数据库厂商制定,不同厂商错误码不同。如重复主键错误码在MySQL中是 106...
2020-02-12 16:32:13
183
转载 05、spring事务管理
写这篇博客之前我首先读了《Spring in action》,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下:Spring事务机制详解Spring事务配置的五种方式Spring中的事务管理实例详解1 初步理解理解事务之前,先讲一个你日常生活中最常干的事:取钱。比如你去ATM机取1000块钱,大体有两个步骤...
2020-02-12 11:48:43
220
转载 04、如何通过spring jdbc访问数据库
学习目标1.Spring JDBC模块有什么作用?1.1JdbcTemplate的解析1.2Spring Jdbc的配置1.3Spring JdbcTemplate的常用方法1.3.1创建数据库,并导入jar包1.3.2创建配置文件<?xml version="1.0" encoding="UTF-8"?><beans...
2020-02-12 10:57:39
189
转载 03、数据库连接池HiKariCP为何如此优秀?
HiKariCP是数据库连接池的一个后起之秀,号称性能最好,可以完美地PK掉其他连接池。原文地址:http://blog.csdn.net/clementad/article/details/46928621官网:https://github.com/brettwooldridge/HikariCP为何要使用HiKariCP?这要先从BoneCP说起:什么?不是有C3P0/DBCP...
2020-02-12 10:45:45
266
转载 02、连接池hiKariCP和druid的使用以及良心对比
Springboot2默认数据库连接池选择了HikariCP为何选择HikariCP理由一、代码量理由二、口碑理由三、速度理由四、稳定性理由五、可靠性HikariCP为什么这么快优化并精简字节码更好的并发集合类实现使用FastList替代ArrayListHikariCP与Druid相比哪个更好?Springboot2快速上手参考资料Spring Boot 2默认数据库连接池选择了Hikari...
2020-02-12 10:45:11
26519
2
转载 01、spring数据源的配置以及多数据源的切换
spring配置数据源我们spring配置数据源常用有三种方式第一种就是一种非常普通的方式<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" val...
2020-02-12 10:44:42
176
原创 (狗头)看了某机构的Java架构师课程内容,我发现自己就是个蝼蚁(2020年)
看完后,大家觉得掌握了多少(精通了多少),欢迎评论区留言。好了开始。 一、底层编码能力(通过学习框架源码了解框架运行流程、设计模式的运用,提升架构设计思维与底层编码能力。)1、spring、springmvc、mybatis核心思想、实现原理2、抽象设计能力...
2020-02-10 23:15:07
1012
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人