![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
BoLann
这个作者很懒,什么都没留下…
展开
-
Java集合需要注意的地方
(一)1.集合大致分为四类:Set List Queue Map2.集合类也被称为容器类3.区别于数组,集合类只能保存对象(对象的引用值)4.java集合类主要由俩个接口派生:Collection Map5.Set(无序集合),List(有序集合),Queue都是Collection的子接口6.Java所有集合大致可以分为三类:Set类似于一个罐子,把一个对象放入Set中时原创 2016-03-14 20:27:33 · 1450 阅读 · 0 评论 -
单例模式的懒汉式和饿汉式
1. 懒汉式1.1. 实现方式1.1.1. 并不直接new一个这个类的静态成员变量,而只是声明,给它赋null值而已1.2. 优缺点1.2.1. 在使用时才新建对象容易导致多线程不安全1.3. 改进方式1.3.1. 将这个静态变量声明为volatile,使用synchroni原创 2016-08-31 18:29:54 · 404 阅读 · 0 评论 -
web容器中的类加载机制
对于运行在JavaEE容器中的Web应用来说,类加载器的实现方式和一般的应用有所不同。不同的web容器的实现机制也有所不同。拿tomcat举例。Tomcat下每个web应用都有一个对应的类加载器实例,该实例也使用代理模式,所不同的是它的加载顺序和一般的类加载器是相反的。我们知道一般的类加载器在加载一个类的时候先将其代理给父加载器,如果父加载器不能加载才自己加载。而tomcat的类加载机制则原创 2016-08-16 14:58:40 · 601 阅读 · 0 评论 -
Java类加载机制
Java虚拟机简介类加载的分类概念类初始化的时机原创 2016-06-16 11:44:50 · 304 阅读 · 0 评论 -
Java 加载驱动程序的方法
1.Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");2. DriverManager.registerDriver(newcom.mysql.jdbc.Driver());3.System.setProperty("jdbc.drivers","com.mysql.jdbc.Driver");原创 2016-06-20 19:57:51 · 4445 阅读 · 0 评论 -
JVM学习笔记(一)
(一)Java内存区域 1.程序计数器: 程序计数器是线程私有的; 程序计数器是较小的一块内存区域,可以看作是当前线程所执行的字节码的行号指示器; 2.Java虚拟机栈: Java虚拟机栈中的局部变量表即为常说的栈内存; Java虚拟机栈也是线程私有的; Java虚拟机栈描述的Java方法执行的内存模型; 局部变量表存放了编译时原创 2016-04-19 16:05:47 · 334 阅读 · 0 评论 -
Java 垃圾回收机制
Java垃圾回收机制判断对象是否存活引用计数算法概念给对象添加一个引用计数器,每当有一个地方引用这个对象时,引用计数器加一,引用失效时减一,任何时刻计数器为零的对象就是不可被再次使用的。优点高效缺点循环引用时这个算法失效现在基本不使用了可达性分析算法概念通过一系列称为“GC Roots”的对象作为起始点,从这些对象出发开始向下搜索,搜索经过的路径被称原创 2016-06-17 16:42:26 · 453 阅读 · 0 评论 -
Java Set集合
1.1. 判断集合中俩个元素相等的规则1.1.1. 俩个对象的HashCode()方法返回值不同1.1.2. equals()方法返回false同时满足(俩个对象的HashCode()方法返回值不同,equals()方法返回false)1.2. HashSet集合中的对象是可以被修改的即使修改之后其hash值和equa原创 2016-07-03 11:40:42 · 465 阅读 · 0 评论 -
Java遍历集合
1. 使用Iterator接口提供的默认方法forEach(Consumer action),该方法的参数是一个参数式接口2. 使用Iterator接口提供的方法访问集合2.1. boolean hasNext()2.2. Object next()2.3. void remove()3. 使用Itera原创 2016-07-03 11:32:05 · 517 阅读 · 0 评论 -
JavaString的一些理解
public class StringTest { public static void main(String[] args) { String str1 = "ab"; String str2 = "cd"; // 下面代码输出true System.out.println("abcd" == "ab" + "cd"); String str3 = str1 + str2原创 2016-05-22 16:30:37 · 711 阅读 · 0 评论 -
用两个栈实现队列
package stackAndQueue;import java.util.Stack;public class TwoStacksQueue { public static void main(String[] args) { TwoStacksQueueReal twoStacksQueueReal = new TwoStacksQueueReal(); for (int原创 2016-07-10 17:35:32 · 386 阅读 · 0 评论 -
实现getMin功能的栈
第一种方式:import java.util.Stack;public class MyStack1 { public static void main(String[] args) { MyStack1Real myStack1Real = new MyStack1Real(); for (int i = 0; i < 10; i++) { myStack1Real原创 2016-07-10 16:41:57 · 515 阅读 · 0 评论 -
Java的可变类与不可变类
primitive(原始)变量: boolean,byte, char, double ,float, integer, long, short jdk的不可变类:jdk的java.lang包中Boolean, Byte, Character, Double, Float, Integer, Long, Short, String. StringBuffer可变类 ja转载 2016-05-13 17:24:01 · 512 阅读 · 0 评论 -
Java volatile Java虚拟机提供的最轻量级同步机制
看下面的代码:package testForThread;/* * volatile变量自增运算测试 * * @author wangGang */public class VolatileTest { public static volatile int race = 0; public static void increace() { race = race + 1;原创 2016-04-12 14:31:26 · 566 阅读 · 0 评论 -
Java是编译型语言还是解释型语言
1.Java先编译后解释:Java 先将程序编译成字节码,运行时再使用JVM解释字节码。即ava程序在运行之前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解为一个中间语言)。在运行的时候,由JVM将字节码再翻译成机器语言。2.脚本语言是解释型语言,运行时一般必须相应解释器,例如vbscript,javascript,installshield script原创 2016-04-07 15:31:55 · 590 阅读 · 0 评论 -
Java泛型需要注意的地方
1.泛型的定义格式 例:List strList = New ArrayList(); java7之后可以使用菱形语法:List strList = New ArrayList()2.所谓泛型就是允许在定义类,接口,方法是使用类型形参,这个类型形参将在声明变量,创建对象,调用方法时动态指定。3.任何类,接口都可添加泛型声明,并不是只有集合类才可以4.为一个普通的类(泛型)例如:A原创 2016-04-03 14:40:17 · 323 阅读 · 0 评论 -
再看Java集合
1. 遍历集合1.1. 使用Iterator接口提供的默认方法forEach(Consumer action),该方法的参数是一个参数式接口参见: 使用Iterator接口提供的forEachRemaining(Consumer action)类似与上面讲的forEach()方法 (都是consumer)1.1.1.原创 2016-08-24 20:56:39 · 446 阅读 · 0 评论