自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 nginx启动、停止、重启命令

启动cd usr/local/nginx/sbin注意:usr/local/nginx 是安装目录./nginx停止查询nginx主进程号ps -ef | grep nginx从容停止 kill -QUIT 主进程号快速停止 kill -TERM 主进程号强制停止 kill -9 nginx 或者 killall -9 nginx./nginx -...

2019-11-12 15:02:09 259

原创 macos编译安装nginx

网上主流的方法安装nginx是通过brew方式,但是这种方式安装之后文件目录太零散,不方便查看和访问,所以这篇文章使用源码安装可以先看一下安装完成之后和brew安装完成后的区别,nginx的目录conf、logs、sbin、html全部在指定的/usr/local/nginx-1.12.2下目录结构说明,先忽略其他文件夹:Conf 配置文件Html 网页文件Logs 日...

2019-11-12 14:52:26 942 2

原创 IDEA调试Tomcat源码方法

最近在扩充自己的java技术栈,浏览了网上的很多IDEA导入源码的教程,这里做一个详细的注意点总结下载tomcat源码https://tomcat.apache.org/download-80.cgi下载tomcat 8.x版本,注意这里要选择Source Code Distributions下面的压缩文件,下载之后解压新建pom文件项目导入tomcat有两种方式,一种是采用ant进...

2019-11-06 22:21:58 1831 1

原创 垃圾回收器和内存分配策略

GC基本概念GC是垃圾收集的意思,内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显式操作方法。Java程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:System.gc()或Runtime...

2019-08-21 14:56:48 296

原创 java内存区域

概述Java虚拟机在执行Java程序的 过程中会把它所管理的内存划 分为若干个不同的数据区域,通常包括程序计数器、虚拟机栈、本地 方法栈、Java堆、方法区(运行时常量池)、直接内存![在这里插入图片描述](https://img-blog.csdnimg.cn/20190819115004759.png各个区域的作用-----------------------------线程隔离---...

2019-08-19 20:22:07 110

原创 java虚拟机简介

什么是java虚拟机?虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。为什么要学习jvm?写出更好,更健壮的java代码提升jav...

2019-08-19 11:40:15 116

原创 java并发容器

高并发下的Java数据结构(List、Set、Map、Queue)并发List(Vector & CopyOnWriteArrayList)ArrayList 不是线程安全的。因此,应该尽量避免在多线程环境中使用ArrayList。如果因为某些原因必须使用的,则需要使用Collections.synchronizedList(List list)进行包装。示例代码:List lis...

2019-07-22 11:23:30 111

原创 ConcurrentHashmap详解

简介ConcurrentHashMap是hashMap的高性能并发版本高性能的原因ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的hash table,只要多个修改操作发生在不同的段上,它们就可以并发进行。理论上 Concurr...

2019-07-22 11:11:43 520

原创 HashMap详解

前言Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据。本文主要详解HashMap的结构和并发下HashMap的问题说明HashMap在并发环境下会有并发问题,所以在并发生产环境下请使用ConcurrentHashMap或者Collections.synchronizedMap(new HashMap()) 但是后一种方法性能太低,一般使用前者Hash...

2019-07-21 22:59:38 150

原创 构造者模式

概念构建者模式 (Builder Pattern)构建者模式的意义实际上,在实际开发中,有时候Java构造器编写会有一个问题,由于JVM在编译期是通过方法名和参数类型以及个数来确定方法,当构造器的参数个数和类型都一致时,无法进行方法重载;利用构造者模式解决Builder设计模式最大的优势是可以随意组合构造器输入的参数,避免了重载出错的问题。另外同一个builder可以重复利用,bu...

2019-06-25 11:57:42 1037

原创 Lombok

初识Lombok说到Lombok不得不提一个非常有趣的Java背景故事······据说当年Java的前一个名称Oak在注册时候已经被另一家公司使用了,所以Oak不得不面临改名的命运,于是就召开了改名大会,员工们各抒己见,最后从无数逗比的名字中筛选出了三个名字:Silk, DNA, Java;最终从三个名称中诞生了Javajava的名字的来源java是印度尼西亚爪哇岛的英文名称,因盛产...

2019-06-25 11:56:24 302

原创 java单元测试(Junit4 + Mockito + MockMvc)

了解单元测试概念什么叫单元测试?单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。Java里可测试单元单元——>java类单元测试的意义软件质量最简单、最有效的保证;是目标代码最清晰、最有效的文档;可以优化目标代码的设计;是代码重构的保障;是回归测试和持续集成的基石。最后才修改一个 bug 的代价是在bug产生时修改它的代价的10倍!T...

2019-06-17 20:02:09 6777

原创 类与类加载器

public class GetClassTest { public static void main(String[] args) throws Exception{ // 重写类加载器加载方法 ClassLoader myLoader = new ClassLoader() { @Override public...

2019-05-28 11:11:58 124

原创 Nginx安装、使用及配置详解

本问包含Nginx的安装、配置、功能、原理及使用方式Nginx安装、使用及配置详解使用brew下载安装,没有brew请先安装神器brewbrew search nginxbrew install nginx启动sudo nginx -s start或者nginx结束nginxsudo nginx -s stop或者ps -ef | grep nginx ...

2019-05-09 21:16:32 397

原创 连接池简介及手写简单连接池

数据库连接池的实现及原理对于一个简单的数据库应用,由于对于数据库的访问不是很频繁。这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销。但是对于一个复杂的数据库应用,情况就完全不同了。频繁的建立、关闭连接,会极大的减低系统的性能,因为对于连接的使用成了系统性能的瓶颈。连接复用。通过建立一个数据库连接池以及一套连接使用管理策略,使得一个...

2019-04-18 16:15:34 1724

原创 java动态代理

代理的概念:代理的含义在于代替原有的对象做更多的事情,而不破坏原来代码的结构;代理分为静态代理和动态代理代理的书写规范代理是面向接口编程,代理类和被代理的类统一实现同一个接口静态代理定义接口public interface Sourceable { public void method();}定义被代理的对象,并实现Sourceablepublic cl...

2019-04-17 16:19:10 113

转载 java技术栈

写给自己1 java基础:1.1 算法1.1 排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序1.2 二叉查找树、红黑树、B树、B+树、LSM树(分别有对应的应用,数据库、HBase)1.3 BitSet解决数据重复和是否存在等问题1.2 基本2.1 字符串常量池的迁移2.2 字符串KMP算法2.3 equals和hashcod...

2019-04-10 13:03:20 157

原创 NEO4j

介绍图形数据库(Graph Database)是NoSQL数据库家族中特殊的存在,用于存储丰富的关系数据,Neo4j 是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边(Edge)和属性(Property)组成的,顶点和边都可以设置属性,顶点也称作节点,边也称作关系,每个节点和关系都可以由一个或多个属性。Neo4j创建的图是用顶点和边构建一个有向图,其查询语言c...

2019-04-09 13:57:04 712

原创 java接口、继承、多态

类的继承:子类通过extends关键字实现对父类的继承,继承之后可以通过子类访问父类的public和protected方法,此外还可以在子类中通过super调用父类的构造方法和public、protected方法类的重写:子类创建和父类相同名称的方法,更改方法的返回值、成员方法的存储权限类的重构:子类的方法和父类的方法参数、返回值,存储权限全部一致,只有实现的方式不同叫做类的重构子类为什么...

2019-04-09 10:49:58 142

原创 java类的高级特性

类包:类包实际上是java程序管理非常有效的机制,每个类文件必须隶属于一个类包,这样有效的解决了类名冲突的问题,在使用类的时候只需要指定类的完整路径,就可以很便捷的找到我们想找到的类。包名:com.demo.package类似的形式,必须在类文件的第一行,要求包名全部小写字母包的导入:import关键字// 导入类import java.lang.*;// 导入静态方法或者静态成员变...

2019-04-09 10:49:27 188

原创 java异常处理

在java中有一个很厉害的类。叫做Throwable类,在Java中Exception和Error类继承这个类;Error非常严重,称为致命性异常;Exception类称为非致命性错误,广义的可以定义为RunTtimeException类和其他异常类,我们一般捕获的都是RunTtimeException异常:程序运行过程中由于打开不存在的文件或者3/0时出现异常,阻塞程序正常执行异常的捕获...

2019-04-09 10:48:54 141

原创 java集合类

集合类:集合类也称为容器,当然数组也是容器,但是集合类和数组的最大区别是数组长度是固定的,而且数据类型是统一的;而集合类是用来存储对象的引用,没有长度的限制,常见的集合类包括Map、Set和List基本的集合类是Collection和Map,Collection是List和Set的父类Collection常见的方法:add、remove、isEmpty、iterator、sizelist的...

2019-04-09 10:48:22 66

原创 java反射

所谓的反射实际上是通过clazz.getClass()方法获取一个类型为Class类型的对象,通过getName()、getPackage()、getMethods()等方法获取类的相关数据;获取类的反射对象1.Class.forName(全类名)–一般用这个2.类名.class 3.对象.getClass()方法Example2 example2 = new Example2()...

2019-04-09 10:47:56 97

原创 java Annotation

java提供了Annotation功能,用于类、构造方法、成员变量、方法、参数的声明中定义Annotation// 无参数的Annotationpublic @interface NoAnnotationDemo {}// 一个参数的Annotationpublic @interface OneAnnotationDemo { // String为成员类型,一般常用的有S...

2019-04-08 21:49:40 79

原创 java枚举类型与泛型

枚举类型:取代以往定义常量的方式,同时枚举类型还提供程序编译时进行检查的功能// 以往定义常量的方法public interface Constants{ public static final int Constants_A = 1; public static final int Constants_B = 2;}// 用枚举代替以往的方法public enum...

2019-04-08 21:49:11 615

原创 java多线程

java语言提供了并发机制,每一个线程执行一个任务,并且与其他的线程一起执行,这种机制称为多线程实现线程的两种方式:继承Thread类和实现Runnable接口,实际上底层代码Thread类也是实现了Runnable接口的run函数// 继承于Threadpublic class ThreadTest extends Thread { // 完成线程的方法在run方法中,当继承T...

2019-04-08 21:48:41 82

原创 java数字处理类

数字格式化public class DecimalFormatSimpleDemo { //使用实例化对象时设置格式模式 static public void SimpleFormat(String pattern,double value) { DecimalFormat myFormat = new DecimalFormat(pattern); String output ...

2019-04-08 21:47:48 164

原创 java包装类

Integer:java.lang包中的Integer类、Long类和Short 类,分别将基本类型int、 long和short 封装成一个类。由于这些类都是 Number的子类,区别就是封装 不同的数据类型,其包含的方法基本相同,下面以Integer 类为例介绍:INteger构造方法有两种Integer number=new Integer(7);Integer numbe...

2019-04-08 21:47:19 83

原创 java类和对象

面向对象术语:类、对象、属性、方法、封装、继承、多态封装:将相同功能的代码封装依起来继承:子类复用和父类相同的方法和属性,并在父类功能基础之上扩展功能多态:多态实际是针对抽象类和接口,当类的方法没办法明确定义,则可以定义为抽象类的抽象方法,或者在接口中定义,实际上接口就是抽象类的集合抽象类和接口的区别:参数抽象类接口默认的方法实现它可以有默认的方法实现接口完...

2019-04-08 21:46:49 91

原创 java数组

数组的概念:数组是一组相同类型的数据的集合创建一维数组:int[] arr1 = new int[5];int[] arr2 = {1, 2, 3, 4};int arr3[] = new int[]{1, 2,3,4};int arr4[] = {1, 2, 3, 4};使一维数组:通过下标进行取值二维数组数组类型[][] 数组名称;数组类型 数组名称[][];i...

2019-04-08 21:46:07 140

原创 java字符串

创建字符串// 1String(char a[])// 2String(char a[], int offset, int length)// 3String a = "aa";连接字符串string1 + string2// 当拼接数字时,会自动调用string1 + int1字符串方法1、length() 字符串的长度   String s=new S...

2019-04-08 21:45:38 94

原创 java流程控制

if条件语句if(布尔表达式1){ 语句序列}else if(布尔表达式2)){ 语句序列}else{ 语句序列}switch语句,应该有表达式和break以及defaultint a = 1;switch (a){ case 1:System.out.println(1); break; case 2:Syste...

2019-04-08 21:45:04 145

原创 java语言基础

全局变量:类中的属性,又称成员变量局部变量:声明在类的方法中java基本数据结构:byte(8位)、short(16位)、int(32位)、long(64位,在超出int长度之后,需在long型数据后面加上L,如11111111111111L,否则报错)、float(32位,默认的小数都为double类型,如果标识为float需要在小数后面加f或者F,float f = 1.23f)、dou...

2019-04-08 21:44:29 67

原创 java异步处理耗时请求

模拟异步调用import com.springdemo2.service.helloService;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.w...

2019-03-18 20:18:35 1956

原创 单例模式

概念:单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置...

2019-03-01 11:16:26 79

原创 Java web项目集成Mybatis

配置pom文件<!-- Mysql依赖,版本号与所用Mysql的版本保持一致 --><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artif

2019-02-26 17:24:26 2456

原创 通过Maven构建最简单的web项目

1.项目采用Maven方式集成Spring Boot构建最基本的网站,实现MVC形式的网站2.项目响应方式为Restful风格3.项目采用Intellj IDEA编译器进行简单的项目构建1.项目搭建点击file—>new—>project按照下下述图片选择创建项目,点击Next输入项目名称,按照如下方式,然后一顿无脑Next+Finish,项目存放地址需要设置的话,请...

2019-02-26 16:26:21 181

原创 mysql功能汇总

python mysql编程:建立和数据库服务器之间的连接 conn = mysql.connect获取游标 cursor = conn.cursor()使用游标执行SQL语句获取效果 cursor.execute(sql语句)关闭游标 cursor.close()断开连接 ...

2019-02-01 16:35:37 3073

原创 mysql表数据类型及约束

常用数据类型整数:int,bit小数:decimal字符串:varchar,char日期时间: date, time, datetime枚举类型(enum)特别说明的类型如下:decimal表示浮点数,如decimal(5,2)表示共存5位数,小数占2位char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab 'varchar表示可变长度的字符串,如...

2019-02-01 16:28:27 168

原创 SQL常见操作

安装服务器端:sudo apt_get install mysql-server启动Mysql服务:sudo service mysql start关闭Mysql服务:sudo service mysql stop重启mysql服务:sudo service mysql restart查看mysql服务是否存在:sudo service mysql status 或者 sudo -aux ...

2019-02-01 16:25:51 424

空空如也

空空如也

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

TA关注的人

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