
java
文章平均质量分 72
Zzrdark_
BZ是一名学生,在编程之路奋斗着,还需要大量的时间去学习,觉得我写的好就关注我把。
展开
-
java代码在内存后续(static)
前言如果看这篇时候看不懂,可以先看BZ前面的一篇文章,请点击这里。内存堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身 栈区: 1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中原创 2016-06-24 17:25:06 · 486 阅读 · 0 评论 -
nio buffer 工作方式
Nio首先我们应该说在nio里 channel selector 以及buffer ,buffer可以说是货物,channel 是送货员 当然后面你能发现 他不单单是送货员那么简单,它还可以是为多个地区分拣货物,而每个地区可以有多个channel , 而 selector 就是分拣员 他负责 以下四个状态 OP_ACCEPT ,OP_CONNENT ,OP_READ ,OP_WRITE 用来确定他们原创 2017-12-17 01:23:45 · 468 阅读 · 0 评论 -
[java多线程]如何安全的退出线程
线程停止Thread提供了一个stop()方法,但是stop()方法是一个被废弃的方法。为什么stop()方法被废弃而不被使用呢?原因是stop()方法太过于暴力,会强行把执行一半的线程终止。这样会就不会保证线程的资源正确释放,通常是没有给与线程完成资源释放工作的机会,因此会导致程序工作在不确定的状态下那我们该使用什么来停止线程呢Thread.interrupt(),我们可以用他来停止线程,他是安全原创 2017-10-20 00:47:15 · 5053 阅读 · 0 评论 -
JDK动态代理实现原理
之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。 废话不多说了,先来看一下JDK的动态是怎么用的。package dynamic.proxy; import java.lang.reflect.Invocation转载 2017-05-25 20:15:44 · 383 阅读 · 0 评论 -
Mybatis 拦截器内部代码解析
Mybatis 拦截器介绍1.1 目录1.2 前言1.3 Interceptor接口1.4 注册拦截器1.5 Mybatis可拦截的方法1.6 利用拦截器进行分页 拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑转载 2017-03-07 23:23:10 · 526 阅读 · 0 评论 -
使用Hibernate的setFirstResult,setMaxResults实现数据库分页
Hibernate可以使用Query.setMaxResults方法简单地设置需要查询的最大结果集。 然后Hibernate会自动根据所设置的数据库方言翻译成相应的SQL语句提交给数据库。比如如果数据库是Oracle,SQL Server等,则翻译为类似select ... top 10之类的SQL语句,若是MySQL,则翻译为select ... limit 10之类的SQL。转载 2017-01-26 18:19:56 · 3522 阅读 · 0 评论 -
DataSource和SessionFactory的区别
博主在学习hibernate以及Spring 过程中 发现 这两个框架整合的时候 发现了 Hibernate 只需要配置一个SessionFactory就可以了~ 当我们要做一些操作的时候 我们直接openSession() 就可以获取的到一个Session进行操作~, 但是如果我们要使用jdbc编程的时候只需要配置一个DataSource 也可以~那么问题来了原创 2017-01-14 18:28:01 · 4323 阅读 · 0 评论 -
泛型限行上限和下限
泛型泛型的作用是给我们用来判断类型的, java代码 无泛型。 定义了两个javabean类。里面有String name public class Demo{ List list = new LinkedList(); public static void main(String[] args){ lis原创 2016-07-18 22:04:50 · 802 阅读 · 0 评论 -
Iterator
我们会使用了集合类了,但是我们应该如何去遍历每种集合类呢? 这时候Iterator就对Collection底下 包括 Collection的共性抽取。 只要实现了这个三个方法就行了。hasNext()、next()、remove(); 就能遍历集合了,叫迭代。、 为了所有集合都能使用(除了Map),所以在Collection接口中必须得实现一个方法就是iterator() 返回 Itera原创 2016-07-18 08:46:04 · 385 阅读 · 0 评论 -
链表和数组(顺序表)&&LinkedList 和ArrayList
数据结构链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 数组是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名。 在这里我们将两个结合在一起看,或许这样就会更加容易了解,认识链表、数组。 单链表的结构 数组的结构以上图一看就能很清楚的知道,如果还不能清晰的了解这两种结构的话, BZ想在这里用C语原创 2016-07-18 02:57:49 · 3542 阅读 · 0 评论 -
简单的java代码在内存加载过程(详解)
内存原创 2016-06-18 05:05:30 · 4080 阅读 · 0 评论 -
异常
异常有两种运行时异常编译时异常 这两种有什么区别呢? 首先我们讲编译时异常 我们才能分出运行时异常的具体区别。 class Demo{ void show(){ throw new Exception(); } } javac Demo.java当我们进行这步运行的 控制台就已经会打印给我们错误信息, 这就是编译时异常;只有我们将进行去捕获原创 2016-07-02 01:50:28 · 532 阅读 · 0 评论 -
synchronized同步的弊端以及Lock针对的解决方案
线程安全如果当我们启动了两个线程,一个修改一个对象的数据 ,一个输出同一个对象的数据。 这个时候如果我们不做出同步的时候,是会引发线程安全的问题。synchronized代码块 class Demo implements Runable{ private Object obj = new Object();public void run(){ while(true){原创 2016-07-08 08:50:17 · 1162 阅读 · 0 评论 -
父类变量与子类对象之谈
前言 class Outer{ public void show(){} } class Inner extends Outer{ public void show(){} }Outer out = new Inner();大家都懂 这肯定是合法的,因为 Inner 类 是 Outer的子类嘛。所以Outer 的引用变量可以指向 子类Inner对象的地址嘛。为什么原创 2016-06-27 02:29:38 · 449 阅读 · 0 评论 -
java代码在内存后续(构造器,子类父类)
本节主要讲构造器的调用过程构造器接下来先看个例子 class Demo{ static int x= 1; int y = 1; static { System.out.println(“static code …x “+x ): } { System.out.println(“c原创 2016-06-24 20:11:56 · 584 阅读 · 0 评论