自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java的类加载器的那些疑惑

tomcat的类加载器是如何加载的?该类加载器也使用代理模式,所不同的是它是首先尝试去加载某个类,如果找不到再代理给父类加载器。这与一般类加载器的顺序是相反的。这是 Java Servlet 规范中的推荐做法,其目的是使得 Web 应用自己的类的优先级高于 Web 容器提供的类。这种代理模式的一个例外是:Java 核心库的类是不在查找范围之内的。这也是为了保证 Java 核心库的类型安全。每个...

2019-07-10 07:57:28 143

原创 Ibatis相关基础之一-为什么要用sqlMapClientTemplate

Ibatis中最常用的类是SqlMapClientTemplate,它封装了SqlMapClient,我们在做数据库操作的时候通常都是用SqlMapClientTemplate类。通过如下配置文件:"> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

2015-08-12 17:22:29 3010

原创 幻读及其解决方案

幻读在一个事务开始(第一条sql执行后真正开始)后由于其他事务提交后插入或删除了数据,导致多次查询的结果不一样。MVCC(Multi-Version Concurrency Control)表中的每条数据都会添加两个字段:创建版本号:创建记录时系统版本号删除版本号:删除记录时系统版本号事务开始后查询获取到的数据的范围创建版本号<=当前事务版本号 保证取出的数据不会有后启动...

2019-09-17 23:38:51 906

原创 kafka特性及其基本是写原理

高性能1. 顺序写如何实现顺序写?kafka的写入会直接写入内核态磁盘缓存Page Cache,PageCache往磁盘写的时候采用顺序写,节省了大量的寻道时间2. 零拷贝Producer写入了Page Cache的数据可以直接通过零拷贝的方式transferTo Socket Cache,而被消费者读取,没有内核态到用户态的切换可靠性1. 确保broker收到通过ISR的机制,设...

2019-09-05 09:45:11 179

原创 RPM与Yum

rpm(Redhat Package Manager)rpm无法解决包依赖的关系参数:-i(–install):安装-e:卸载-q(–query):查询指定包名-qa:列出当前系统所有已安装的包-qi:查询包的摘要信息-ql:查询包生成的文件清单Yum(Yellow dog Updater, Modified):YUM使用Python语言写成。YUM客户端基于RPM包进行管理,可...

2019-06-21 01:12:41 82

原创 mac的防火墙工具pf

重定向:rdr on tl0 proto tcp from 192.0.2.1 to 24.65.1.13 port 80 ->192.168.1.5 port 8000将指定ip访问指定ip:port的请求转发至另外一个ip:port重定向规则是用来将因特网上到来的连接转发到一个内部网络或者局域网的私有地址启用与停止:pfctl -e | pfctl -d# ...

2019-06-04 07:44:38 3089

原创 多线程精要

目录中断线程池===========================================================中断中断是通过调用Thread.interrupt()方法来做的. 这个方法通过修改了被调用线程的中断状态来告知那个线程, 说它被中断了. 对于非阻塞中的线程, 只是改变了中断状态, 即Thread.isInterrupted()将返回true; 对于可取消的阻塞

2017-02-04 14:54:43 196

原创 ThreadLocal的原理与使用

ThreadLocal的基本原理与使用

2016-11-19 23:51:44 336

原创 Concurrent包学习笔记--Callable

为何使用Callable? Callable优势是相对于Runnable而言的,使用Runnable作为线程的执行器是不会返回结果的,而Callable作为执行器可以返回结果(也可以抛出异常),同时还可以对任务做一些操作和获取任务的当前状态。Callable是如何实现这些功能的? Callable实现上述的功能是通过Future这个接口的,注意ExecutorService包含三个方法<T>

2016-10-25 00:26:13 286

转载 git reset soft,hard,mixed之区别深解

git reset soft,hard,mixed之区别深解时间:2015-05-19 00:28:42      阅读:1432      评论:0      收藏:0      [点我收藏+]标签:class   style   log   com   使用   src   http   it   文件   GIT reset命令,似乎让人很迷惑,以至于误解,误

2015-12-20 23:28:00 759

原创 Java序列化基础

Java中可序列化的类必须要实现Serializable接口或Externalizable接口,那么实现这两个接口的区别是什么呢。若实现Serializable接口,若不做任何额外处理,类会有固定的序列化方式。即对所有的属性(除了transient和static关键字修饰的类型)进行序列化。若属性是基本类型,那当然很容易序列化,但属性若是对象的引用,那也会对引用的对象进行序列化,并且以此类推。

2015-08-10 00:48:39 355

原创 Java字节码中invokespecial与invokevirtual指令的解析

1.invokespecial只能调用三类方法:方法;私有方法;super.method()。因为这三类方法的调用对象在编译时就可以确定。2.invokevirtual是一种动态分派的调用指令:也就是引用的类型并不能决定方法属于哪个类型。看如下代码:public class SubClass1 extends SuperClass{ public static void main(S

2015-08-08 14:24:44 5973

原创 java数据库连接方式纵览

最初的数据库连接大概是这样的:Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mirco_message?characterEncoding=utf8","root","********");StringBu

2015-07-23 14:40:00 484

原创 巧用JVM启动参数定位一个问题

今天用tomcat容器起一个web应用时,偶然发现我并没有mysql驱动,但程序依然可以正常访问数据库,到处找了半天都没有找到驱动的jar包在哪。最终,我想到了使用JVM的启动参数-verbose:class打印程序的类加载信息[Loaded org.apache.tomcat.util.http.CookieSupport from file:/D:/apache-tomcat-7.0.55

2015-07-14 15:37:07 262

原创 Java中的线程同步技术

Java中的线程同步有几种方式,synchronized关键字和wait(),notify()下面就来对这两种方式展开描述一下:synchronized关键字可以用于方法和代码块,若用于方法,默认是对当前实例加锁。而用于代码块时可以指定加锁对象(或者Class),这种加锁方式非常简单,而且一般情况下效率也不差。但是要sychronized和wait()/notify方法的关系是什么呢?简而

2015-07-09 17:08:23 507

原创 IoC(Inversion of Control)内涵解析

IoC(Inversion of Control),即所谓的控制反转,从字面上意思来看是控制权的反转,那到底是什么样的控制权的反转呢,下面就以一段简单的代码为例:public interface Auto { void start(); void forward(); void back();}public class Car implements Auto { @Overri

2015-05-17 10:56:59 423

原创 如何使用eclipse打包

作为一个小白,经常使用eclipse开发,想引入什么依赖直接用buildpath也能实现。每天使用eclipse开发调试已经成为习惯,需要什么JAR包的时候只需要configure Build Path引入一个即刻轻松搞定,但突然有一天当我需要打一个JAR包的时候我却发现自己还不会。当时的情况是酱紫滴:(1)项目为所依赖的JAR包的目录结构图。(2)项目本身目录结构图

2015-04-29 22:37:09 1721

原创 Java Exception

Java中所有Exception和Error的父类是Throwable,只有对象为Throwable实例或其子类实例时,才能被抛出(throw)而Throwable又包含如下几个属性backtrace : Objectcause : Throwable(另一个导致此 throwable 抛出的 throwable。此 cause 属性在 1.4 版本中首次出现。它也称为异常链

2015-04-17 01:09:06 462

原创 servlet原理--Tomcat与Servlet如何解耦

这幅图是描述servlet原理最常见的一幅图,但是其中却并没有一个Servlet类的存在,这看起来是不是很奇怪呢?图1.Tomcat容器模型其实,这并不奇怪,这幅图本身只是描述的Tomcat容器模型,而这个模型与Servlet的关系又是如何建立的呢。首先,一个Container包含一个Host,在这个Host中又包含了Servlet容器,而这个Servlet容器中就包含了许多应用,

2015-04-08 13:59:05 1059

原创 java中如何获取文件路径

我们通常设置的环境变量中的CLASSPATH是 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar,也就是当前目录加几个JAR包。此外,我们可以通过java中的-cp指定程序的classpath。但是,在程序中我们如何获得相应的文件呢?当然,我们可以使用绝对路径(这种方式让我们的程序无法移植),但是最有用的是使用getResource()和getR

2015-04-08 13:34:27 485

空空如也

空空如也

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

TA关注的人

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