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

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

原创 Ibatis相关基础之一-为什么要用sqlMapClientTemplate
Ibatis中最常用的类是SqlMapClientTemplate,它封装了SqlMapClient,我们在做数据库操作的时候通常都是用SqlMapClientTemplate类。通过如下配置文件:"> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
2015-08-12 17:22:29
3071
原创 幻读及其解决方案
幻读在一个事务开始(第一条sql执行后真正开始)后由于其他事务提交后插入或删除了数据,导致多次查询的结果不一样。MVCC(Multi-Version Concurrency Control)表中的每条数据都会添加两个字段:创建版本号:创建记录时系统版本号删除版本号:删除记录时系统版本号事务开始后查询获取到的数据的范围创建版本号<=当前事务版本号 保证取出的数据不会有后启动...
2019-09-17 23:38:51
958
原创 kafka特性及其基本是写原理
高性能1. 顺序写如何实现顺序写?kafka的写入会直接写入内核态磁盘缓存Page Cache,PageCache往磁盘写的时候采用顺序写,节省了大量的寻道时间2. 零拷贝Producer写入了Page Cache的数据可以直接通过零拷贝的方式transferTo Socket Cache,而被消费者读取,没有内核态到用户态的切换可靠性1. 确保broker收到通过ISR的机制,设...
2019-09-05 09:45:11
221
原创 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
108
原创 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
3352
原创 多线程精要
目录中断线程池===========================================================中断中断是通过调用Thread.interrupt()方法来做的. 这个方法通过修改了被调用线程的中断状态来告知那个线程, 说它被中断了. 对于非阻塞中的线程, 只是改变了中断状态, 即Thread.isInterrupted()将返回true; 对于可取消的阻塞
2017-02-04 14:54:43
228
原创 Concurrent包学习笔记--Callable
为何使用Callable? Callable优势是相对于Runnable而言的,使用Runnable作为线程的执行器是不会返回结果的,而Callable作为执行器可以返回结果(也可以抛出异常),同时还可以对任务做一些操作和获取任务的当前状态。Callable是如何实现这些功能的? Callable实现上述的功能是通过Future这个接口的,注意ExecutorService包含三个方法<T>
2016-10-25 00:26:13
324
转载 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
822
原创 Java序列化基础
Java中可序列化的类必须要实现Serializable接口或Externalizable接口,那么实现这两个接口的区别是什么呢。若实现Serializable接口,若不做任何额外处理,类会有固定的序列化方式。即对所有的属性(除了transient和static关键字修饰的类型)进行序列化。若属性是基本类型,那当然很容易序列化,但属性若是对象的引用,那也会对引用的对象进行序列化,并且以此类推。
2015-08-10 00:48:39
397
原创 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
6508
原创 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
516
原创 巧用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
289
原创 Java中的线程同步技术
Java中的线程同步有几种方式,synchronized关键字和wait(),notify()下面就来对这两种方式展开描述一下:synchronized关键字可以用于方法和代码块,若用于方法,默认是对当前实例加锁。而用于代码块时可以指定加锁对象(或者Class),这种加锁方式非常简单,而且一般情况下效率也不差。但是要sychronized和wait()/notify方法的关系是什么呢?简而
2015-07-09 17:08:23
539
原创 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
466
原创 如何使用eclipse打包
作为一个小白,经常使用eclipse开发,想引入什么依赖直接用buildpath也能实现。每天使用eclipse开发调试已经成为习惯,需要什么JAR包的时候只需要configure Build Path引入一个即刻轻松搞定,但突然有一天当我需要打一个JAR包的时候我却发现自己还不会。当时的情况是酱紫滴:(1)项目为所依赖的JAR包的目录结构图。(2)项目本身目录结构图
2015-04-29 22:37:09
1781
原创 Java Exception
Java中所有Exception和Error的父类是Throwable,只有对象为Throwable实例或其子类实例时,才能被抛出(throw)而Throwable又包含如下几个属性backtrace : Objectcause : Throwable(另一个导致此 throwable 抛出的 throwable。此 cause 属性在 1.4 版本中首次出现。它也称为异常链
2015-04-17 01:09:06
487
原创 servlet原理--Tomcat与Servlet如何解耦
这幅图是描述servlet原理最常见的一幅图,但是其中却并没有一个Servlet类的存在,这看起来是不是很奇怪呢?图1.Tomcat容器模型其实,这并不奇怪,这幅图本身只是描述的Tomcat容器模型,而这个模型与Servlet的关系又是如何建立的呢。首先,一个Container包含一个Host,在这个Host中又包含了Servlet容器,而这个Servlet容器中就包含了许多应用,
2015-04-08 13:59:05
1101
原创 java中如何获取文件路径
我们通常设置的环境变量中的CLASSPATH是 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar,也就是当前目录加几个JAR包。此外,我们可以通过java中的-cp指定程序的classpath。但是,在程序中我们如何获得相应的文件呢?当然,我们可以使用绝对路径(这种方式让我们的程序无法移植),但是最有用的是使用getResource()和getR
2015-04-08 13:34:27
531
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人