- 博客(29)
- 资源 (5)
- 收藏
- 关注
原创 线程池ThreadPoolExecutor源码分析二(ReentrantLock)
可重入锁,锁如其名,可以重复进入:当一个线程事先拥有了锁之后,后续该线程还可以再一次拥有该锁。1.1Syn内部抽象类
2021-12-26 17:32:45
736
原创 Java三种for循环的性能分析
随机读取的情况下,数组结构优于链表结构;从头遍历的情况下,普通for循环只适用于数组结构,而迭代器根据实现不同,数组结构和链表结构都选取了效率高的方式遍历,增强型for循环类比迭代器。
2021-04-22 00:52:56
6328
5
原创 图文并茂——从零开始使用Webstorm创建vue.js项目
目录1)安装node.js2)创建node_global和node_cache文件夹3)配置NODE_PATH环境变量4)安装taobao镜像5)安装webpack6)全局安装vue脚手架vue-cli7)使用Webstorm创建vue.js项目1)安装node.js进入官网,下载推荐给大部分用户的版本,完成之后执行安装,选择安装目录之后一直next就行,不需要其他操作.介于之后配置路径的易读性和方便读者对照,这里是笔者安装路径:H:\DevelopeSoft\Nod
2021-04-16 00:18:01
11202
3
原创 反编译详解Java枚举类Enum
从字节码指令分析Java枚举类的运行过程。目录一、创建的枚举类二、反编译字节码1)getCode()方法分析2)setCode()方法分析三、枚举常量给枚举类成员变量赋值过程分析一、创建的枚举类public enum ResponseCodeEnum { SUCCESS("0000", "success"), BUSINESS_EXCEPTION("5000", "wrong"); private String code; private
2021-01-20 16:32:30
981
原创 Java——LocalDateTime
JAVA8新特性中添加的时间处理类,相比与以前使用的Date和Canlendar类,该类在时间处理上更加的简单方便。下面记录一些常用的方法。目录一、获取LocalDateTime类型的时间(静态方法)1. LocalDateTime.now()2.LocalDateTime.now(ZoneId zoneId)3. LocalDateTime.of(int year, int month, int dayOfMonth, int hour, int minute)4. LocalD.
2020-12-26 21:22:55
24266
转载 MySql运行机制原理和架构
原文地址:MySQL运行机制原理&架构主要补充了一些事务隔离级别会带来的问题以及可以避免什么问题,还有就是MYSQL内部优化语法树的规则。一、MySQL知识普及MySQL是一个开放源代码的关系数据库管理系统。MySQL架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。二、MySQL逻辑架构1.ConnectorsMySQL首先是一个网络程序,其在TCP之上定义了自己的应用层协
2020-06-26 11:15:38
1643
翻译 SpringBoot远程调用响应体为乱码问题
远程调用第三方接口响应体中文乱码问题解决背景:基于SpringCloud、SpringBoot的项目,使用RestTemplate进行远程调用第三方接口问题:使用restTemplate调用第三方接口(restTemplate.postForEntity(),注意是post请求),接收到的json格式响应体中文出现乱码,但是第三方接...
2019-08-20 19:48:47
996
原创 new String(xx)和string = xxx的区别
结论:new String(xxx)会在内存中产生一个新的字符串,即使该字符串已经存在于常量池中,也不会引用已经存在的字符串,会重新生成一个新的字符串,而且重新生成的这个字符串也是不可被引用的(比如,先String a = new String("test"); 再 b = "test",这时,b并不会引用a的值,a和b是不同的,使用==比较结果为false。);string = xxx,如果常量...
2019-06-20 21:48:53
1815
原创 Java字符串String的trim()方法源码解析
平常判断一个字符串是不是一个空串,通常都会先调用String类的trim()方法,再判断该字符串的长度是不是0,或者调用String的isEmpty方法判断是不是空串(和判断长度等价)。那么,其实trim()方法就是将一个字符串开头连续的空格和结尾连续的空格消除的方法。下面就通过源码了解一下这个方法的逻辑是如何实现的。首先,贴上trim()方法的源码 public String t...
2019-06-20 21:22:25
1736
原创 Springboot自定义配置Mongodb数据源
该篇文章配置的Mongodb数据源的背景是在多数据源的情况下——已经配置了俩个Mysql的数据源。如果仅仅只需要配置一个mongodb数据源,那么就非常简单,配置文件里面添上mongodb的host,port,database(主机,端口号,数据库名),之后使用Springboot的自动化配置,直接注入MongoTemplate就能够进行操作。而如果在已经配置了其他数据源的情况下(多数据源都是...
2019-06-15 12:41:29
6793
原创 Springboot整合Mybatis多数据源配置
话不多说,直接进入正题。源码地址:https://github.com/AliceAsuna/KiritoV1.git目录一、数据库配置文件二、配置类主数据源配置类:次数据源配置类:三、项目结构(重点是mapper结构和配置类里的路径对应)四、启动类——启动类需要取消加载数据源自动配置五、测试:controller:Service:Mapper:数据...
2019-06-09 14:06:44
28002
18
原创 SpringBoot踩坑之路——Springboot与数据库配置(一)
如今微服务非常的流行,为了更加了解这一门技术,开始自己的踩坑之路。这里记录了笔者在创建SpringBoot项目中踩过的坑以及如何填坑。目录一、链接mysql.jdbc.Driver提示信息(1)driverClassName: com.mysql.cj.jdbc.Driver(2)java.sql.SQLException: The server time zone value...
2019-06-08 19:57:18
10635
原创 Spring AOP与自定义注解Annotation的使用
AOP,Spring框架的两大核心之一,又称面向切面编程,通过代理模式,对原有的类进行增强。在Spring框架中,AOP有两种动态代理方式,其一是基于JDK的动态代理,需要代理的类实现某一个接口;其二是基于CGLIB的方式,该方式不需要类实现接口就能进行代理。AOP的应用场景,常见的就是事务的处理和日志的记录,还有权限的认证。(笔者使用AOP的场景:保存所有用户对数据进行的增删改内容等,比如,张三...
2019-06-03 21:29:19
10709
原创 Java1.8新特性之Stream的使用
JAVA1.8新特性Stream API的简单使用list.stream()和list.parallelStream()的区别:stream(),单线程操作,虽然Stream API支持多线程操作集合,但是普通的stream()并没有提供多线程操作,实质上还是串行运行,对于遍历集合来说,它和迭代器,for循...
2019-06-01 13:21:08
1068
原创 JVM之类加载机制
在Java中,只有我们创建的类被JVM加载之后,我们才能够使用。一、类加载时机类加载过程:1、加载→2、验证→3、准备→4、解析→5、初始化→6、使用→7、卸载(其中,1,2,3,5,7这几个步骤顺序是确定的,但是解析、使用则没有确定;比如解析阶段不一定必须在初始化之前或者准备之后,它可能出现在初始化之后。)什么情况下JVM会进行类加载操作?1、遇到new、getstatic、...
2019-04-10 00:12:28
121
原创 JVM之垃圾收集器
Java的垃圾收集器是区别于C++语言的一个重要特征。在C++里面,内存的分配以及回收,都是程序员可控的,这带来的好处就是,只要你处理得当,内存空间就不会存在大量浪费,但同时,这也是C++程序员最痛苦的地方,每一个内存的分配和回收都需要自己去处理,稍不注意就是删库跑路(手动滑稽);而针对这一点,Java就完全将内存的分配以及回收交给了JVM,Java程序员只需要在适当的地方创建对象,分配内存;在对...
2019-03-30 10:37:56
358
原创 JVM之内存模型以及Java的参数传递
一、Java的内存模型关于Java运行时的内存模型,布局,大部分人了解熟悉的就是堆和栈(这也是我们最关心的俩个区域),然而实际上,JVM的内存模型其实远远不止这两块。实际上,JVM讲内存划分为了5大模块:1、方法区。2、堆。3、JVM栈。4、本地方法栈。5、程序计数器(这5大区域里面,线程私有的是3,4,5这三个模块(即线程自己拥有的空间,其他线程不能访问到的),而线程共享(就是所有线程都能够...
2019-03-26 22:33:06
404
原创 基于SSM框架的Web项目(三)
通过之前两篇文章的内容,我们已经可以做到访问我们的首页并实现页面之间的跳转,接下来就是最后一部分,关于jsp页面传数据到后端,以及后端将数据库里面的数据传输给前端。一、前端JSP页面代码首页登录页面,注意表单里面输入框的name属性,后端依靠这个属性来获取jsp页面的对应数据(具体获取方式为:request.getParameter("name"))<%@ page conte...
2019-03-16 21:19:08
5099
原创 基于SSM框架的Web项目(二)
通过上一篇文章,我们已经大致搭建好了spring的框架结构,并且能通过配置bean,执行单元测试成功,接下来就是配置数据源以及整合SSM了。一、配置数据源在main包下的resources包下创建如下几个文件:并且配置好安装好的MySQL的各项参数,其中很多参数笔者这里没有用,不过有要求的可以配置这些参数。#db configmysql.driverClass=com.my...
2019-03-13 22:20:56
1669
原创 基于 SSM框架的Web项目(一)
一、使用Idea创建一个maven工程首先,打开IDEA界面,选择File→new project(注意项目别选错了,上面还有一些名字比较像的工程)点击next之后,填写groupid和artifactid点击next,选择maven配置路径等信息,也可以直接使用idea自带的,当然,笔者使用的是自己安装的点击next,选择项目位置,然后点击finish,整个项目就创建...
2019-03-09 15:31:02
2424
原创 JDK1.8、IDEA2018版、MAVEN、GIT的下载与安装(Git官网下载慢,内含百度云链接)
目录1、JDK1.8的下载与安装一、下载JDK二、安装2、IDEA的下载与安装一、IDEA的下载二、IDEA的安装三、IDEA的配置与激活3、MAVEN的下载安装与配置一、下载二、安装配置4、Git的下载与安装一、下载二、安装(图片过程为最新版2.21版本Git)1、JDK1.8的下载与安装一、下载JDK首先去官网下载页面,下载JDK...
2019-03-04 18:12:53
8448
原创 笔记本电脑已连接WIFI密码查看方法
背景:WIFI密码忘记,但是笔记本电脑以前链接过WIFI命令行管理员身份打开:输入 netsh wlan show profile 然后会显示连接过的WIFI名字,接下来在下面命令里面选择需要查看密码的WIFI名字,以四川省图书馆WIFI为例:输入net wlan export profile name=xxxxxx folder=. key=clear ...
2019-02-13 22:11:10
3555
原创 java发送邮件的两种实现方式(包括如何伪造发件人及其原理)
java发送邮件的两种通用方法一、本文讲解的是基于smtp协议,发送邮件的方法(一种是底层实现,一种是利用第三方jar包)。而关于smtp协议,不了解的可以在网上搜一下,有很多资料并且很容易懂;不过不了解也没关系,只需要知道,smtp协议存在一个安全漏洞,就是smtp协议允许你两次设置发件人和收件人信息。第一次发送命令行mail from:...
2019-02-04 10:28:16
10984
3
翻译 关于eclipse项目右键没有project facets的解决方法
1.点击:Help->Install New Software2.点击add添加name:Keplerlocation:http://download.eclipse.org/releases/kepler3.等待底下出现信息勾选:Web,XML, Java EE and OSGi Enterprise Development4.一直点击next,最后完成。亲测有效...
2018-10-27 23:00:36
7614
6
原创 String类的trim()方法之不能消除的空格
在后台数据统计清洗中,我们时常会遇到针对字符串的修改的问题,其中比较常见的就是消除字符串中的空格。这里笔者要阐述的不是如何消除字符串中出现的空格,而是在消除字符串中遇到的问题:有些空格不能使用trim()消除掉。这个问题出现的原因在于trim()函数只能消除半角空格,而不能消除全角空格。如果输入的空格是全角空格,那么后台使用trim()是不能清除的。要想消除全角空格,就必须先将全角空格...
2018-10-27 12:15:12
10534
1
原创 Java对日期操作的类(Date、SimpleDateFormat、Calendar)
最近在程序中遇到了一些需要对日期进行操作的问题,在解决问题的同时,也顺便复习巩固下日期类的一些方法:Date、SimpleDateFormat、Calendar。一:三大类的基本概念、部分常用方法介绍与举例(1)Date:表示特定的瞬间,精确到毫秒(因为闰秒的原因,所以其实结果并不是特别的准确,但是如果要求不是特别严格,影响并没有很大。)构造方法:Date()、Date(Long da...
2018-08-19 12:24:22
9911
原创 Java的常用类—String类与Object类
在java编程中,字符串类String可以说用得非常普遍,基本所有java程序都会或多或少的用到String类;而Object类,作为Java中所有类的父类,即使不常直接使用,也会经常使用到其中的方法。下面就讲一讲这两个常用类的基本操作。 String类:可以将字符串常量、变量赋值给String类。其中值得注意的一点是,String类创建的字符串常量其实是共享的。...
2018-08-06 23:21:47
6381
基于SSH的校园物品交易平台
2018-06-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人