Java中String创建对象过程及其运算原理

一、String类的常见问题题解析 ,1.1、new String(“hello”)创建了几个对象   不考虑其他因素,String b = new String("hello&a...

2018-09-11 23:05:15

阅读数 467

评论数 0

Mybatis中#{}和${}的区别

一、结论   #{}:占位符号,好处是防止sql注入。   ${}:sql拼接符号。 二、具体分析   动态 SQL 是 mybatis 的强大特性之一,也是它优于其他 ORM 框架的一个重要原因。mybatis 在对 sql 语句进行预编译之前,会对 sql 进行动态解析,解析为一个...

2018-09-07 14:17:36

阅读数 427

评论数 0

数据库事务隔离级别及脏读、不可重复读、幻读的理解

  开篇声明,由于两位大佬排版不够美观,然后又发现一些歧义,因此我集百家之所长,精心整理并排版良好,可放心阅读。 http://blog.csdn.net/yuxin6866/article/details/52649048 https://blog.csdn.net/zjxxyz123/ar...

2018-08-30 16:25:36

阅读数 558

评论数 0

Nginx之upstream的四种配置方式

1、轮询(weight)   指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。默认当weight不指定时,各服务器weight相同,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 upstream bakend { ser...

2018-08-29 16:42:34

阅读数 6023

评论数 0

HTTP三次握手四次挥手过程

一、HTTP协议三次握手过程 1.1名词解释。   SYN(Synchronous 位码,表示建立联机)   Seq(Sequence number 顺序号码)   ACK(Acknowledgement 确认值)   Ack(Acknowledgement number 确认号码) ...

2018-08-27 14:14:43

阅读数 672

评论数 0

Java动态代理源码详解

  前言:动态代理在很多底层框架中都会用得到,比如Spring等都用到了动态代理。它的作用很简单,就是将你要使用的类,重新生成一个子类或本类。这样框架就可以利用这个新生成的类做一些事情,比如在该类的方法前后加一些代码。这样的话,你就可以不用修改任何已经编写好的代码,只要使用代理就可以灵活的加入任何...

2018-08-21 17:11:14

阅读数 359

评论数 0

Java中CAS详解(悲观锁与乐观锁)

前言:在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁 锁机制存在以下问题: (1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。 (2)一个线程持有锁会导致其它所有需要此锁的线程挂起。 (3)如果一个优先级高的线程等待...

2018-08-14 15:36:01

阅读数 460

评论数 0

Java设计模式——工厂模式详解

一、概述 1.1使用场景。   在任何需要生成复杂对象的地方,都可以使用工厂方法模式。 直接用new可以完成的不需要用工厂模式。   个人理解,重点就是这个复杂 (构造函数有很多参数)和是否可以直接用new。 二、工厂模式的五种写法 2.1简单的静态工厂模式。 /** *...

2018-08-13 17:07:36

阅读数 37

评论数 0

Nginx入门配置详解

一、配置虚拟主机   前言:Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,在开发中很常用。本文只讲解Nginx常用配置,安装方面自行百度,以下是基于windows版本讲解的,除了命令稍有不同,配置文件和Linux是一模一样的。   (1)Linux下常用命令: ...

2018-08-12 17:00:48

阅读数 319

评论数 0

JVM二:全面理解Java内存模型(JMM)及Java内存区域

一、计算机内存 1.1、硬件内存架构。   计算机CPU(central processing unit)和内存的交互是最频繁的,内存是我们的高速缓存区。用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓存用户IO等待导致CPU的等待成本。但...

2018-08-09 11:53:33

阅读数 94

评论数 0

JVM一:类加载过程详解

  我们都知道一个java程序运行要经过编译和执行,但是这太概括了,中间还有很多步骤,今天来说说类加载。   学完类加载之后,java运行过程就可以分为:编译—>>>类加载—&...

2018-08-08 11:17:30

阅读数 154

评论数 1

Java设计模式——单例模式详解

三、单例模式的八种写法 3.1懒汉模式【线程不安全】,单例实例在第一次使用时进行创建。 public class SingletonExample1 { // 私有构造函数 private SingletonExample1() {} // 单例对象 priva...

2018-08-03 11:42:28

阅读数 59

评论数 0

Java反射完全详解

三、反射的使用 3.1获取Class对象的三种方式。 3.1测试类: public class Example1 { public static void main(String[] args) { // 1.第一种方式获取Class对象 // new...

2018-08-02 16:46:25

阅读数 45

评论数 0

Java反射详解

三、反射的使用 3.1获取Class对象的三种方式。 3.1测试类: public class Example1 { public static void main(String[] args) { // 1.第一种方式获取Class对象 // new...

2018-08-02 16:29:13

阅读数 145

评论数 0

Maven中指定Java的编译版本和源文件编码方式

Maven默认编译版本是JDK1.5,在很多时候,发现有些代码报错,又找不到原因,很有可能是没有配置JDK版本。就如有一次我遇到的问题:定义全局异常处理类继承HandlerInterceptorAdapter时候,preHandle方法上面有@Override就一直报错,点开HandlerInte...

2018-07-30 21:19:56

阅读数 1118

评论数 0

eclipse安装lombok或@Slf4j注解找不到log

一、第一种方法 1、这里面列出了所有版本的jar,一般下载最上面最新的就行。 https://www.projectlombok.org/all-versions 2、找到eclipse安装位置,将lombok.jar放入和eclipse.ini文件平级的文件夹下,如我的安装路径: D:\...

2018-07-29 21:40:45

阅读数 2617

评论数 0

java中final关键字的真正作用

一、前言   final使得被修饰的变量”不变”,但是由于对象型变量的本质是“引用”,使得“不变”也有了两种含义: (1)引用本身的不变, (2)引用指向的对象不变。 一、引用本身的不变: final StringBuffer a=new StringBuffer("i...

2018-07-28 14:26:19

阅读数 210

评论数 0

Maven+Tomcat实现热部署

一、Tomcat配置 1、修改Tomcat的conf/tomcat-users.xml配置文件。添加用户名、密码、权限。 <role rolename="ma...

2018-07-27 20:12:36

阅读数 2246

评论数 0

线程与多线程(四)——线程调度

三、线程调度   线程调度管理器负责线程排队和CPU在线程间的分配,并按线程调度算法进行调度。当线程调度管理器选中某个线程时,该线程获得 CPU资源进人运行状态。   线程调度是抢占式调度,即如果在当前线程执行过程中个更高优先级的线程进人可运行状态,则这个更高优先级的线程立即被调度执行。 3...

2018-07-27 14:21:16

阅读数 343

评论数 1

线程与多线程(三)——线程的状态

三、线程的状态 3.1线程的四种状态         线程的生命周期可以分成4个阶段,即线程的4种状态,分别为新生状态、可运行状态、阻塞状态和死亡状态。一个具有生命的线程,总是处于这4种状态之一。 线程的生命周期如下图所示。 1.新生状态(New Thread)                ...

2018-07-27 11:04:36

阅读数 90

评论数 0

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