摘要:一、泛型的概念 Java5引入参数化类型(Parameterized Type)的概念,也称为泛型(Generic)。泛型:就是允许在定义类、接口、方法时使用类型形参。这个类型形参将在声明变量、创建对象、调用方法时动态指定,即传入实际的类型参数(也叫传入类型实参)。传入的类型实参的类型必须是引用类型
阅读全文
摘要:一、什么是范式 1.1、范式:Normal Format,是离散数学的知识,是为了解决数据的存储与优化而提出来的。要求存储数据后,凡是能够通过关系寻找出来的数据,坚决不再重复存储,终极目标是为了减少数据的冗余。 1.2、范式是一种分层的规范,分为6层,每一层都比上一层更加严格,若要满足下一层范式,前
阅读全文
摘要:1、要在web启动时预加载数据到ServletContext,实现方法有很多,一种比较简单的方案就是: 1)新建一个bean,定义其初始化方法: <bean id="beanId" class="beanClassName" init-method="初始化方法" />或者使用@PostConstr
阅读全文
摘要:1、新建一个web项目,jdk版本为1.8.0_111,使用 Jsp + Servlet + Model 实现MVC模式,并使用BeanFactory工厂 + xml配置文件 + 反射 来解耦合 整个web项目的结构如下图: 1.1、编写BeanFactory工厂 1.2、为了在服务器启动时就创建b
阅读全文
摘要:1、由一个小案例引出本博文的讨论 public class Demo1 { public static void main(String[] args) throws Exception { Student s1 = new Student(); s1.setAge(10); int capacit
阅读全文
摘要:一、Java中的hashCode()和equals() 1、 hashCode()的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode()是用来在散列存储结构中确定对象的存储地址的; 2、如果两个对象相同,就是指对象调用equals()方法返回true,那么这两个对
阅读全文
摘要:本文转自 http://www.jasongj.com/java/thread_safe/ 一、多线程编程中的三个核心概念 本篇文章将从这三个问题出发,结合实例详解volatile如何保证可见性及一定程序上保证顺序性,同时例讲synchronized如何同时保证可见性和原子性,最后对比volatil
阅读全文
摘要:1、案例1 public class Demo1 { public static void main(String[] args) throws Exception { // Vector空参构造:容量为10 Vector<Integer> vector = new Vector<>(); Syst
阅读全文
摘要:一、关于Vector类的注意事项 1、从 Java 2 平台 v1.2 开始,vector类改进为实现 List 接口,成为 Java Collections Framework 的成员;所以vector类有一些遗留的方法。2、关于Vector的线程安全:Vector中的单个方法是线程安全的,因为方
阅读全文
摘要:一、为什么使用线程池 1)提高性能:系统启动一个新线程的成本是比较高的,而使用线程池避免了频繁地创建和销毁线程,可以很好地提高性能。线程池里的线程结束后并不会死亡,而是回到线程池中称为空闲线程,等待使用; 2)控制线程数量:使用线程池还可以有效地控制系统中并发线程的数量,当系统中包含大量并发线程时,
阅读全文
摘要:一、对多线程的理解 1.进程和线程 程序是指令和数据的有序集合,本身没有任何运行的含义,是一个静态的概念。几乎所有的操作系统都支持同时运行多个任务,一个任务通常就是一个程序,每个运行中的程序就是一个进程。当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程。一个程序只有一个进程
阅读全文
摘要:1、写一个包子生产消费案例:一次生产或消费一个包子,有包子就消费,没有就生产。 1.1 写一个Baozi.class,包含main()方法,用来测试 package com.oy.demo3; /* * 包子生产消费案例:一次生产或消费一个包子,有包子就消费,没有就生产。 */ public cla
阅读全文
摘要:一、线程的生命周期 1、线程的5种状态:新建(New),就绪(Runnable),运行(Running),阻塞(Blocked),死亡(Dead) 2、线程的生命周期图解:(参考传智播客刘意2015Java基础视频讲义) 二、线程的状态转换图 1、线程的5种状态:新建(New),就绪(Runnabl
阅读全文