
java
cpf2016
这个作者很懒,什么都没留下…
展开
-
不定长参数
(1)基础 也就是说不确定函数中参数的个数有多少个(包括0-N个) 需要注意的是: 1.一个函数中只能有一个不定长参数 2.一个函数中的不定长参数必须作为最后一个参数放在末尾 这两个要求都是为了保证编译器能够知道参数转载 2016-02-15 22:51:57 · 952 阅读 · 0 评论 -
乐观锁
1.使用原因 实际上是为了解决数据库并发访问的情况。 如一个银行账户中余额为1000元,A向其中转账200,B从中取出300,那么应该是剩余900,。 但实际情况下,可能是A转了200,但是还没有提交事务,这个时候B获取余额信息,值是1000,取出300后,修改余额为700,提交事务,然后A又提交事务,这时候账户余额变为1200,显然是不对的。转载 2015-06-21 17:01:43 · 430 阅读 · 0 评论 -
集合操作的ConcurrentModificationException
1.产生情景 在做项目中遇到如下需求:遍历集合,删除其中值=2的元素。代码如下: @Test public void test() { List list = new ArrayList(); list.add(0); list.add(1); list.add(2); list.add(3); list.add(4); for (Inte转载 2015-06-15 16:10:18 · 470 阅读 · 0 评论 -
ClassLoader
1.ClassLoader作用 顾名思义,就是用来加载Class文件到JVM,以供程序使用的。我们知道,java程序可以动态加载类定义,而这个动态加载机制就是通过ClassLoader来实现的。 那么就有一个问题:既然ClassLoader是用来加载类到JVM的,那么ClassLoader又是如何加载的呢?难道它不是java类?确转载 2015-01-14 19:28:25 · 432 阅读 · 0 评论 -
分布式系统中保证数据的正确性(插入与更新)
1.更新 如用户A、B都看到数据库中的数据为6,然后A将值修改为3,但是B这时使用的数据还是6,所以就会出现问题。 这种情况下使用乐观锁。乐观锁一般通过version字段或者修改时间来实现2.插入 一般通过数据库表中列的唯一性来保证alter table 表名 add unique key 唯一键名称 (列名1,列名2,列名3)转载 2015-06-23 20:04:09 · 1213 阅读 · 0 评论 -
JavaBean与Map相互转化
1.添加依赖 commons-beanutils commons-beanutils 1.9.22.JavaBean转化为Map PersonBean person = new PersonBean(); person.setAge(12); person.setGender("mail"); person转载 2015-06-01 22:40:36 · 528 阅读 · 0 评论 -
json处理——Jackson框架
1.添加依赖 org.codehaus.jackson jackson-core-lgpl 1.9.13 org.codehaus.jackson jackson-mapper-lgpl 1.9.132.Json转化javaBean、Map、List 方法: 使用readValue,传入指定类型即可转载 2015-06-01 19:56:37 · 485 阅读 · 0 评论 -
java枚举
1.为何使用枚举 (1)实际变成中,通常需要一些常量数据集,如周一到周日,性别等,通过枚举就可以表示 (2)需要一些常量key-value集合,当然可以使用全局单例map,但是用枚举更好实现2.枚举使用 (1)简单定义常量集public enum GenderEnum { man,women;}原创 2015-05-30 13:17:18 · 421 阅读 · 0 评论 -
Jdbc批量插入
1.实例@Test public void teseInsertBatch() { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhos转载 2015-05-11 20:37:41 · 315 阅读 · 0 评论 -
加密:DigestUtils与java MessageDigest
1.使用Spring的DigestUtilspublic class StringUtilTest { static final String TARGET = "changeme"; /* * 不可逆算法 MD5 */ @Test public void Md5() { St转载 2015-05-08 20:44:08 · 17368 阅读 · 0 评论 -
悲观锁
1.悲观锁介绍 和他的名字一样,对数据被外界修改(包括本系统的其他事务,以及来自外部系统的事务)持保守态度,也就是说,认为外界很有可能对这个数据同时修改。 所以,需要在数据处理工程中,将数据处于锁定状态,也就是只能单线程处理。2.悲观锁实现 因为要实现单线程访问,所以就只能通过数据库提供的锁来实现了。因为即使在本系统中实现了加锁机制,转载 2015-06-21 18:03:11 · 445 阅读 · 0 评论 -
fastjson
1.序列化 即将javabean、map、list等转化为json字符串 (1)JavaBean序列化 @Test public void test() { Person person = new Person(); person.setAge(2); person.setId(1); person.setName("lucy"); S转载 2015-06-21 20:35:24 · 417 阅读 · 1 评论 -
java中日期类型
1.Date1.转载 2014-07-25 11:21:44 · 538 阅读 · 0 评论 -
生成随机字符串
(1)引入jar org.apache.commons commons-lang3 3.4(2)使用 @Test public void test() { String prePswd = RandomStringUtils.randomAlphanumeric(8); System.out.println(prePswd); } 生成8转载 2015-11-16 17:33:29 · 472 阅读 · 0 评论 -
fastjson其他常用方法
(1)@JSONField 我们使用fastjson进行序列化的时候,默认情况下,都是使用属性的名称作为json中的key名称 但是有时候我们需要序列化为其他的名称,@JSONField注解就是这个作用 import java.util.Date;import com.alibaba.fastjson.annotation.JSONField;publ转载 2015-10-30 14:19:50 · 396 阅读 · 0 评论 -
JDK、maven环境变量解析
(1)引入 在我们安装jdk和maven的时候,通常都会定义一个环境变量,如JAVA_HOME、MAVEN_HOME等,然后将这个环境变量加上bin目录放在环境变量path后面,这是什么作用呢?(2)解析 因为我们在cmd命令行中输入命令的时候,系统会从当前当前文件夹下或path下查找exe、bat等文件来执行,如果找不到就会报错。转载 2015-10-29 20:55:44 · 365 阅读 · 0 评论 -
java操作Excel文件
1)转载 2014-08-25 20:11:42 · 636 阅读 · 0 评论 -
常用正则表达式
注:(1)^:表示匹配的字符必须在最前面 如:^A 会匹配"An A",但是不会匹配"an A"(2)$:表示匹配的字符必须在最后面 如:t$ 会匹配"eat",但是不会匹配"eatting"(1) 长度匹配 1.任意字符组成的字符串的长度在0-5之间^.{0,5}$ 2.数字组成的字符串的长度在0转载 2015-11-09 15:01:48 · 319 阅读 · 0 评论 -
参看端口号\关闭对应进程
(1)查看 cmd中:netstat -ano(2)关闭对应进程 根据端口号可以找到对应进程的PID,在任务管理器中关闭即可转载 2015-11-09 15:14:27 · 342 阅读 · 0 评论 -
NIO——buffer
(1)作用 NIO中的Buffer用于和NIO通道进行交互:数据从通道读入缓冲区,从缓冲区写入到通道中的。 Buffer的本质是一块可读可写的内存,NIO将这块内存包装成Buffer对象,并提供了一组方法,用来方便的访问该内存(2)position、limit 1)写模式 可以理解为转载 2015-09-19 22:11:18 · 341 阅读 · 0 评论 -
RandomAccessFile
(1)作用 用于根据字节偏移量来操作文件中的数据。 注意:只能实现文件中数据的读取和修改,根本无法做到插入!(2)常用方法 1)构造方法public RandomAccessFile(String name, String mode) name:文件的路径转载 2015-09-19 21:24:24 · 308 阅读 · 0 评论 -
mysql时间函数
(1)日期类型 日期类型日期格式存储空间日期范围datetime YYYY-MM-DD HH:mm:ss8bytes1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 timestampYYYY-MM-DD HH:mm:ss4bytes1970-01-01 00:00:01 ~转载 2015-11-04 11:25:57 · 314 阅读 · 0 评论 -
String的intern()方法
1.背景 从文件读取多个字符串,存储起来供别的类来使用。 如果每次读入一个词都要new一个String,那么许多同样内容的String会创建很多次,这样会耗费大量内存。 如果使用set/map来去重的话,可以解决问题,但是效率会降低。这个时候最好使用String.intern()方法2.使用 @Test public void t转载 2015-05-08 20:23:15 · 421 阅读 · 0 评论 -
StringUtils用法
StringUtils依赖于commons-lang3这个jar(1)空字符串检查public static boolean isBlank(CharSequence cs) 源码:public static boolean isBlank(CharSequence cs) { int strLen; if (cs == null ||转载 2015-05-08 19:53:01 · 2338 阅读 · 0 评论 -
CharSequence与String
CharSequence实际上是一个接口,定义了操作字符串的基本方法public interface CharSequence { int length(); char charAt(int index); CharSequence subSequence(int start, int end); public String toString();}转载 2015-05-08 19:46:37 · 597 阅读 · 0 评论 -
==、equals与hasCode
(1)== 1.如果用来比较两个原生数据类型,那么就是比较2个值是否相等 2.如果用来比较两个对象,那么就是比较2个对象地址是否相等 (2)equals Object类中的equals方法与==效果相同,比较的是对象的地址,由于我们通常转载 2014-12-21 19:57:29 · 445 阅读 · 0 评论 -
java随机数
(1)生成任意随机数转载 2014-11-18 16:51:27 · 368 阅读 · 0 评论 -
java中队列Queue
1.定义 java中mei转载 2014-11-12 17:22:44 · 505 阅读 · 0 评论 -
java生成压缩文件
1)因为使用jdk自带的压缩类或导致中文转载 2014-08-20 22:48:31 · 482 阅读 · 0 评论 -
File
1)java中的File类是为了操作文件,转载 2014-08-18 12:10:53 · 461 阅读 · 0 评论 -
使用dom4j操作xml
1) Xml中转载 2014-09-10 17:16:51 · 435 阅读 · 0 评论 -
java对象序列化
1)为什么要实现序列化转载 2014-08-24 11:17:30 · 356 阅读 · 0 评论 -
java零碎知识点
1)两个Collection()转载 2014-08-20 15:57:27 · 296 阅读 · 0 评论 -
正则表达式学习笔记
1) 在某个范围之内[ ] 1>直接将所有内容列出来 Pattern pattern = Pattern.compile("[asd]c"); Matcher matcher = pattern.matcher("ac"); System.out.println(matcher.find()); matcher转载 2014-08-04 16:52:11 · 401 阅读 · 0 评论 -
位操作与BitSet
(1) 将一个数的二进制向左移动n位 格式:num //0000 0011 int num = 3; //0000 1100 左移补0 num = num<<2; System.out.println(num);转载 2014-12-25 22:08:30 · 1005 阅读 · 0 评论 -
HashSet源码解析
因为HashSet底层是通过HashMap实现的,HashSet中的值作为HashMap中的key,value完全相同,所以在理解了HashMap的基础上,HashSet很容易理解public class HashSet extends AbstractSet implements Set, Cloneable, java.io.Serializable { static fi转载 2015-01-20 20:45:54 · 351 阅读 · 0 评论 -
HashMap源码解析
(1)HashMap概述 HashMap是基于哈希表的Map接口的非同步实现。允许使用null值和null键。此类不保证映射的顺序,特别是他不保证该顺序恒久不变。(2)HashMap数据结构 HashMap实际上是一个链表散列的结构,即数组和链表的结合体,实际上就是Hash表通过链表来解决冲突。转载 2015-01-20 14:36:33 · 362 阅读 · 0 评论 -
jdbc管理事务
1.事务 (1)相关概念 1)定义: 事务就是逻辑上的一系列操作,要么全部执行,要么全部都不执行。 2)自动提交: 数据库默认事务是自动提交的,也就是发一条sql他就执行一条 (2)数据库开启事务的命令 1)start transactio转载 2015-04-04 15:13:08 · 356 阅读 · 0 评论 -
自定义Annotation
1.编写注解类的规则 (1)Annotation类型定义为@interface 所有的Annotation会自动集成java.lang.Annotation这一接口,并且不能再去继承别的类或者接口 (2)Annotation成员只有public或者默认这两个修饰符 (3)参数成员只能用8种原生数据类型和St转载 2015-04-03 19:05:51 · 438 阅读 · 0 评论 -
java加载顺序
1.总体顺序 (1)虚拟机在首次加载java类的时候,会对静态代码块,静态成员变量,静态方法进行一次初始化 (2)类实例化过程,按照父子继承关系进行初始化,首先执行父类的代码块,然后是父类的构造方法;再执行子类的代码块,最后是子类的构造方法2.实例package my.acm;public class Order { public static vo转载 2015-03-06 12:40:28 · 305 阅读 · 0 评论