自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(117)
  • 资源 (1)
  • 收藏
  • 关注

原创 JAVA程序员面试技术点

2019-07-17 19:39:18 312

原创 写一个java生成模板

github地址:https://github.com/yangdehong/mapper_model.git所有的model使用的都是idea的lombok插件生成的结果结果图片READMEmapper_model简介这个项目基础框架是用的springboot2.x+jdbc完成的,配置修改在application.yml。默认端口是80,可以自行修改。model生成是基于...

2019-07-16 13:54:12 785

原创 tkmybatis报错java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider

今天把mybatis改成tkmybatis,遇到了一个错误2019-07-03 21:07:23.588 [http-nio-8001-exec-1] [AVGHMEQV] - c.y.r.e.ExceptionHandle - ERROR - requestURI: /ipWhiteList/selectIpWhiteListById, message: {}org.mybatis.spri...

2019-07-03 21:12:20 646

原创 idea启动卡住,Executing Maven Goal

今天使用最新版本的idea遇到一个问题,就是在项目启动的是卡在这个页面很久,过了好久才开始启动项目解决找到这个把勾去掉

2019-06-03 18:46:47 3727 4

原创 rocketmq搭建的时候内存不足的问题

由于我使用的是虚拟机,所以内存不太够,造成了问题。问题按照官网使用的时候,启动broker的时候,除了内存不够的报警[root@localhost apache-rocketmq]# sh bin/mqbroker -n localhost:9876Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00...

2019-05-30 21:02:40 1606

原创 docker -net 的4中网路模式

host模式docker run 使用 --net=host指定docker使用的网络实际上和宿主机一样。(一个Docker容器一般会分配一个独立的Network Namespace。但如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使...

2019-04-28 11:37:01 932

转载 WebSocket的原理,以及和Http的关系

一、WebSocket是HTML5中的协议,支持持久连接;而Http协议不支持持久连接。首先HTMl5指的是一系列新的API,或者说新规范,新技术。WebSocket是HTML5中新协议、新API.Http协议本身只有1.0和1.1,也就是所谓的Keep-alive,把多个Http请求合并为一个。二、WebSocket是什么样的协议,具体有什么优点。首先,相对于Http这种非持久的协议来说...

2019-04-09 21:59:59 722

原创 GET,POST区别

Session, Cookie区别1、Session由应用服务器维护的一个服务器端的存储空间;Cookie是客户端的存储空间,由浏览器维护。2、用户可以通过浏览器设置决定是否保存Cookie,而不能决定是否保存Session,因为Session是由服务器端维护的。3、Session中保存的是对象,Cookie中保存的是字符串。GET,POST区别下面的表格比较了两种 HTTP 方法:GE...

2019-04-09 21:58:07 122

原创 TCP字段解析

TCP是一个协议,那这个协议是如何定义的,它的数据格式是什么样子的呢?要进行更深层次的剖析,就 需要了解,甚至是熟记TCP协议中每个字段的含义。哦,来吧。上面就是TCP协议头部的格式,由于它太重要了,是理解其它内容的基础,下面就将每个字段的信息都详 细的说明一下。1、Source Port和Destination Port:分别占用16位,表示源端口号和目的端口号;用于区别主机中的不同进程, ...

2019-04-09 21:56:33 6038

原创 TCP请求过程(三次握手和四次挥手)

三次握手1、三次握手过程TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号 并交换 TCP窗口大小信息。这就是面试中经常会被问到的TCP三次握手。只是了解TCP三次握手的 概念,对你获得一份工作是没有任何帮助的,你需要去了解TCP...

2019-04-09 21:55:31 2905

转载 HTTP请求报文和HTTP响应报文

2.请求报文和响应报文HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。HTTP请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。<request-line> 请求行<headers> 请求头<blank...

2019-04-09 21:53:16 276

原创 http返回code

状态行格式如下:HTTP-Version Status-Code Reason-Phrase CRLF其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。1xx:指示信息–表示请求已接收,继续处理。2xx:成功–...

2019-04-09 21:52:24 580

原创 http请求步骤

HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:建立TCP连接在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建 Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则, 只有低...

2019-04-09 21:50:32 146

原创 http介绍

简介HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。HTTP协议的主要特点可概括如下:1.支持客户/服务器模式...

2019-04-09 21:48:26 147

原创 java 浅拷贝和深拷贝

Java中的对象拷贝指的是将一个对象的所有属性拷贝到另一个有着相同类型的对象中去。举例说明:比如,对象A和对象B都属于类S,具有属性a和b。那么对对象A进行拷贝操作赋值给对象B就是:B.a=A.a;B.b=A.b。Java中的对象拷贝主要分为:浅拷贝(Shallow Copy)、深拷贝(Deep Copy)。浅拷贝1、对于数据类型是基本数据类型的成员变量,浅拷贝会直接进行值传递,也就是将该属性...

2019-04-02 23:09:34 106

原创 java循环计数器-CyclicBarrier

例子import java.text.SimpleDateFormat;import java.util.Date;import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;import java.util.concurrent.ExecutorService;...

2019-04-02 20:59:37 742

原创 java计数器-CountDownLatch

例子import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/*** @description: 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。* 用给定...

2019-04-02 20:59:32 401

原创 java异步-CompletionService

比较这两者最主要的区别在于submit的task不一定是按照加入自己维护的list顺序完成的。从list中遍历的每个Future对象并不一定处于完成状态,这时调用get()方法就会被阻塞住,如果系统是设计成每个线程完成后就能根据其结果继续做后面的事,这样对于处于list后面的但是先完成的线程就会增加了额外的等待时间。而CompletionService的实现是维护一个保存Future对象的...

2019-04-02 20:59:28 174

原创 java资源锁-Semaphore

概念一个计数信号量。从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)的线程数目。主要方法1、构造...

2019-03-31 15:23:18 680

原创 Java线程池的7个参数

java.uitl.concurrent.ThreadPoolExecutor类是线程池中核心的一个类,在ThreadPoolExecutor中提供了四个构造方法。通过源码可以发现,前面三个的构造器最后都是调用了第四个构造器进行初始化。public class ThreadPoolExecutor extends AbstractExecutorService {public ThreadPo...

2019-03-31 15:19:37 938

原创 java线程池

基础的线程池线程池主要有4类,如下package com.ydh.test.pool;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util...

2019-03-31 15:16:16 59

原创 java线程

implements Runnablea.定义一个类实现Runnable接口,重写接口中的run()方法。在run()方法中加入具体的任务代码或处理逻辑。b.创建实现Runnable接口的类的对象。c.创建一个Thread类的对象,需要封装前面Runnable接口实现类的对象。(接口可以实现多继承)d.调用Thread对象的start()方法,启动线程。extends Threada....

2019-03-31 15:10:26 66

原创 wait()和sleep()区别

1、wait是object的方法,sleep是thread的方法2、wait会释放线程,sleep不会3、wait需要notify唤醒

2019-03-31 15:08:56 195

原创 分布式锁

rediszookeeper

2019-03-31 09:48:50 66

原创 volatile 和cas

volatile1、保证线程间变量的可见性简单地说就是当线程A对变量X进行了修改后,在线程A后面执行的其他线程能看到变量X的变动,更详细地说是要符合以下两个规则:a、线程对变量进行修改之后,要立刻回写到主内存。b、线程对变量读取的时候,要从主内存中读,而不是缓存。2、禁止指令重排(有例外)什么是指令重排序?有两个层面:在虚拟机层面,为了尽可能减少内存操作速度远慢于CPU运行速度所带来...

2019-03-31 09:48:32 819

原创 偏向锁,轻量级锁,重量级锁

markword在介绍java锁之前,先说下什么是markword,markword是java对象数据结构中的一部分,要详细了解java对象的结构可以点击这里,这里只做markword的详细介绍,因为对象的markword和java各种类型的锁密切相关;markword数据的长度在32位和64位的虚拟机(未开启压缩指针)中分别为32bit和64bit,它的最后2bit是锁状态标志位,用来标记当...

2019-03-31 09:48:24 301

原创 锁分类-自旋锁

1、来由Java的线程是映射到操作系统的原生线程之上的,如果要阻塞或唤醒一个线程,都需要操作系统来帮忙完成,这就需要从用户态转换到核心态中,因此状态装换需要耗费很多的处理器时间,对于代码简单的同步块(如被synchronized修饰的getter()和setter()方法),状态转换消耗的时间有可能比用户代码执行的时间还要长。虚拟机的开发团队注意到在许多应用上,共享数据的锁定状态只会持续很短的...

2019-03-31 09:46:35 306

原创 Synchronized的原理

在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。1、阻塞代价java的线程是映射到操作系统原生线程之上的,如果要阻塞或唤醒一个线程就需要操作系统...

2019-03-31 09:46:26 225

原创 锁分类

公平锁和非公平锁公平锁是指多个线程在等待同一个锁时,必须按照申请锁的先后顺序来一次获得锁。公平锁的好处是等待锁的线程不会饿死,但是整体效率相对低一些;非公平锁的好处是整体效率相对高一些,但是有些线程可能会饿死或者说很早就在等待锁,但要等很久才会获得锁。其中的原因是公平锁是严格按照请求所的顺序来排队获得锁的,而非公平锁时可以抢占的,即如果在某个时刻有线程需要获取锁,而这个时候刚好锁可用,那么这个线...

2019-03-30 22:16:13 86

原创 lock 和 synchronized

死锁四要素,如何避免1、产生死锁的四个必要条件?a.互斥条件:进程对所分配到的资源不允许其他进程进行访问,若其他进程访问该资源,只能等待,直至占有该资源的进程使用完成后释放该资源b.请求和保持条件:进程获得一定的资源之后,又对其他资源发出请求,但是该资源可能被其他进程占有,此事请求阻塞,但又对自己获得的资源保持不放c.不可剥夺条件:是指进程已获得的资源,在未完成使用之前,不可被剥夺,只能在...

2019-03-30 22:13:59 98

原创 jenkins远程传输启动

1、安装插件 Publish Over SSH2、配置SSH需要配置ssh的key

2019-03-30 21:37:08 430

原创 jenkins新建maven项目

安装https://blog.csdn.net/u014803081/article/details/88919242新建项目-f mytest/pom.xml clean package -Dmaven.test.skip=true -Pdevexport BUILD_ID=mytestsh $WORKSPACE/build.sh tomcat_test mytest myte...

2019-03-30 21:26:52 1281

原创 docker安装jenkins

// 官方有两个镜像,一个jenkins,一个jenkins/jenkins 前者在使用安装插件的时候一直失败,建议使用后者docker pull jenkins/jenkinsdocker run --name jenkins -p 8080:8080 -p 50000:50000 -d jenkins/jenkins初始化进入需要密码查找下密码位置:initialAdminPasswo...

2019-03-30 21:15:22 320

原创 CentOS7关闭SELinux

查看[root@dev-server ~]# getenforceDisabled[root@dev-server ~]# /usr/sbin/sestatus -vSELinux status: disabled临时关闭##设置SELinux 成为permissive模式##setenforce 1 设置SELinux 成为enforcing模式s...

2019-03-30 12:22:57 165

原创 nginx配置

基础配置location / {root /home/admin/draw_lottery_admin_web/pages;index login.html login.htm;}location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {expires 30d;root /home/admin/draw_lottery_admin_...

2019-03-30 10:20:59 347

原创 centos安装jdk和tomcat

1、到oracle官网找到需要的jdk下载地址[tomcat@localhost data]$ cd src[tomcat@localhost src]$ sudo wget http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar...

2019-03-30 09:30:02 65

原创 JVM工具

jps(Java Virtual Machine Process Status Tool)查看jvm进程,包括进程ID,进程启动的路径等等jstack(Java Stack Trace)查看Java线程的调用堆栈的,可以用来分析线程问题;可以查看运行的java程序的java stack和native stack的信息。1、针对活着的进程做本地的或远程的线程dump(jvm的dump文件)...

2019-03-30 09:29:45 139

原创 JVM的参数

默认配置:对内存最大值是物理内存的1/4,堆内young:old=1:2,young中一个s:e=1:6,元数据空间12m-20m,年轻代默认拷贝次数15次,官方建议:young:old=3:5。参数-Xmx1024 Java Heap最大值,最佳设值应该视物理内存大小及计算机内其他内存开销而定;-Xms1024 Java Heap初始值,Server端JVM最好将-Xms和-Xm...

2019-03-30 09:29:35 348

原创 JVM垃圾收集器

串行收集器1、serial收集器(JDK1.7之前默认)使用单线程处理所有垃圾回收工作,因为无需多线程交互,所以效率比较高,在进行垃圾收集时候,必须暂停其他所有的工作线程直到它收集结束。无法使用多处理器的优势,所以此收集器适合单处理器机器。当然,此收集器也可以用在小数据量(100M左右)情况下的多处理器机器上。特点:CPU利用率最高,停顿时间即用户等待时间比较长。使用场景:小型应用JVM...

2019-03-29 22:23:38 195

原创 JVMGC算法

引用计数(Reference Counting)比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。缺点:此算法最致命的是无法处理循环引用的问题。标记-清除(Mark-Sweep)此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除。缺点:此算法需要暂停整个应用,同...

2019-03-29 22:17:54 480

freeswitch权威指南

freeswitch权威指南,扫描版

2019-01-31

空空如也

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

TA关注的人

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