4 Java藏宝阁

尚未进行身份认证

暂无相关描述

等级
博文 33
排名 9w+

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

一、String类的常见问题题解析,1.1、newString(“hello”)创建了几个对象  不考虑其他因素,Stringb=newString("hello");这行代码到底创建了几个对象?  情况一,创建了一个对象:Stringa="hello&qu

2018-09-11 23:05:15

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

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

2018-09-07 14:17:36

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

  开篇声明,由于两位大佬排版不够美观,然后又发现一些歧义,因此我集百家之所长,精心整理并排版良好,可放心阅读。http://blog.csdn.net/yuxin6866/article/details/52649048https://blog.csdn.net/zjxxyz123/article/details/79413729一、数据库事务正确执行的四个基本要素1.1ACID...

2018-08-30 16:25:36

Nginx之upstream的四种配置方式

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

2018-08-29 16:42:34

HTTP三次握手四次挥手过程

一、HTTP协议三次握手过程1.1名词解释。  SYN(Synchronous位码,表示建立联机)  Seq(Sequencenumber顺序号码)  ACK(Acknowledgement确认值)  Ack(Acknowledgementnumber确认号码)1.2握手过程详解  参照下图所示进行解释:  (1)第一次握手:主机A发送位码为SY...

2018-08-27 14:14:43

Java动态代理源码详解

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

2018-08-21 17:11:14

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

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

2018-08-14 15:36:01

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

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

2018-08-13 17:07:36

Nginx入门配置详解

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

2018-08-12 17:00:48

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

一、计算机内存1.1、硬件内存架构。  计算机CPU(centralprocessingunit)和内存的交互是最频繁的,内存是我们的高速缓存区。用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓存用户IO等待导致CPU的等待成本。但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,CPU厂商在每...

2018-08-09 11:53:33

JVM一:类加载过程详解

  我们都知道一个java程序运行要经过编译和执行,但是这太概括了,中间还有很多步骤,今天来说说类加载。  学完类加载之后,java运行过程就可以分为:编译—>>>类加载—>>>执行。  类加载主要是由jvm虚拟机负责的,过程非常复杂,类加载分三步:加载—>>&a

2018-08-08 11:17:30

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

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

2018-08-03 11:42:28

Java反射完全详解

三、反射的使用3.1获取Class对象的三种方式。 3.1测试类:publicclassExample1{publicstaticvoidmain(String[]args){//1.第一种方式获取Class对象//new产生一个对象,一个Class对象Example1example1=newEx...

2018-08-02 16:46:25

Java反射详解

三、反射的使用3.1获取Class对象的三种方式。3.1测试类:publicclassExample1{publicstaticvoidmain(String[]args){//1.第一种方式获取Class对象//new产生一个对象,一个Class对象Example1example1=newEx...

2018-08-02 16:29:13

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

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

2018-07-30 21:19:56

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

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

2018-07-29 21:40:45

java中final关键字的真正作用

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

2018-07-28 14:26:19

Maven+Tomcat实现热部署

一、Tomcat配置1、修改Tomcat的conf/tomcat-users.xml配置文件。添加用户名、密码、权限。<rolerolename="manager-gui"/><rolerole

2018-07-27 20:12:36

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

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

2018-07-27 14:21:16

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

三、线程的状态3.1线程的四种状态    线程的生命周期可以分成4个阶段,即线程的4种状态,分别为新生状态、可运行状态、阻塞状态和死亡状态。一个具有生命的线程,总是处于这4种状态之一。 线程的生命周期如下图所示。1.新生状态(NewThread)         创建线程对象之后,尚未调用其start()方法之前,这个线程就有了生命,此时线程仅仅是一个空对象,系...

2018-07-27 11:04:36
奖章
    暂无奖章