
Java
文章平均质量分 71
nx188
亡羊补牢,笨鸟先飞
展开
-
java blockingqueue 单独用, 结合线程池用
单独用代码:package ThreadPoolTest;import java.util.concurrent.BlockingQueue;import java.util.concurrent.LinkedBlockingDeque;import java.util.concurrent.LinkedBlockingQueue;/** * * @category 阻塞队列原创 2016-07-10 10:32:16 · 601 阅读 · 0 评论 -
java jar war 打包
1. java jar 包,选择java build path,add folder 即可,folder 里面的文件会加到jar 包里,如图1,2图1 图 22. java war 包,选择deployment assembly ,add 即可,folder 里面的文件会加到jar 包里,如图3,4图 3图 4原创 2016-01-06 20:09:03 · 635 阅读 · 0 评论 -
java rabbitmq MessageQueue 使用第一章
一..环境搭建运行message queue client 的 java代码需要3个步骤1..装erlang环境http://www.erlang.org/downloads2..erlang环境为了rabbitmq 的server 安装做准备http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.4/rabbitmq-se原创 2016-07-10 21:31:56 · 1570 阅读 · 0 评论 -
java 反射机制 / 反射new 对象 / 反射方式调用方法
java 反射/** * * @author jalo * @printout * 反射:是在运行期间动态的加载一个类进来,动态的new 一个对象出来,动态去了解这个对象内部的结构,动态的去调用这个对象的某一个方法 好处是,配置文件里别的不用写,就写类的名字,就可以动态的把这个类加载进来。加载进来好处:spring / struts / hibernate 很多时候原创 2016-01-05 20:56:56 · 3876 阅读 · 0 评论 -
java 正则(3) matches() / find() / lookingAt / start end / replaceAll / appendReplacement / group(int)
1. Matcher 类的 matches() / find() / lookingAt / start end / replaceAll / appendReplacement / group(int) 方法。appendReplacement( )方法比replaceAll 方法好用,想替换谁就替换谁,想怎么替换就怎么替换。group ( int )方法,告诉我们,正则表达式可以分原创 2016-01-11 16:21:35 · 643 阅读 · 0 评论 -
java 数据类型所占字节数,int char
数据类型所占字节数,代码如下:package SimpleGrammar;/** * * @author jaloli * byte和int,char类型区别如下: 1.byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127 。 2.char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 );大小范围 是0—65535 ;原创 2016-06-11 09:36:13 · 2637 阅读 · 0 评论 -
java 移位运算符,取反运算符 >> << >>> ~ , java 负数补码存放规则等同于机器存储
移位运算代码如下:package SimpleGrammar;/** * * @author jaloli * * (1)负数存储:java 等同于机器,都是用补码存,补码的规矩, * 负数 -2 ,原码为 10000000000000000000000000000010 * 补码是符号位不变,各位取反+1,补码为 111111111原创 2016-06-11 09:32:25 · 829 阅读 · 0 评论 -
java Executor 提供的五种线程池
四种线程池说明:Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时(原创 2016-05-15 11:15:11 · 4794 阅读 · 0 评论 -
jdbc mysql和sql server 建立连接代码 / tomcat+jdbc会出现的问题No suitable driver found for问题,
问题背景:正常启动tomcat,以下代码被执行,不会报错。如果修改了代码,哪怕加一个空格,这里的第二句就会报“ No suitable driver found for ” Exception。 String url="jdbc:mysql://localhost:3306/---------"; conn=DriverManager.getConnection(url);原创 2015-11-13 15:29:40 · 5210 阅读 · 0 评论 -
java compareTo 和 binarySearch
1.compareTo( ) 函数两个维度的compareTo 方法如下写: public int compareTo(WordProperty o) { long diff = this. cityId - o. cityId; diff = ( diff == 0) ? this. typeScore - o. typeScore原创 2016-06-07 18:14:20 · 456 阅读 · 0 评论 -
java 抽象类 抽象方法被调用 static 方法不能被复写
父类代码如下:public abstract class Animal { public float weight; public float height; public void practice() { //static 是类方法,不能被子类复写 run(); // 在抽象类中,abstract 方法可以被非abstract 方法调用, eat(); //但是直到a原创 2016-03-20 13:26:55 · 3258 阅读 · 0 评论 -
java try catch 无论在哪里try ,都不断掉程序Exception 发生后的流程
java 代码如下:(1)package trycatch;public class TryCatch { public static void a (int i) { try { System. out.println(3 / ( i-3)); } catch(Exception原创 2016-06-01 16:06:02 · 2580 阅读 · 0 评论 -
java 解析dom 树方式来解析XML文件
原理:将XML 文件解析成dom 树(即Document 对象),对document 对象进行操作得到各个节点的名称和节点的值。需要的 jar 包:xml-apis-1.4.01.jar几个需要澄清的概念,如下图:代码:Book.xml 文件 thinking in java 85.5原创 2016-05-15 16:19:17 · 1621 阅读 · 0 评论 -
java 线程池执行 callable 接口,future 接收callable 接口的返回值
callable 接口和runnable 接口的区别:(1)callable 和runnable 很像, callable 的call() 方法可以等同于runnable 的run() 方法,(2)call() 能返回结果,run()不能。(3)call() 可以抛出受检查的异常,比如ClassNotFoundException, 而run()不能抛出受检查的异常。代码:p原创 2016-05-15 12:06:45 · 1426 阅读 · 0 评论 -
java 数字时间年月日等 格式化format 输出
代码如下:数字常用类型%s %d 等,如下public static void main(String[] args) { String str=null; str=String.format("Hi,%s", "王力"); System.out.println(str); str=String.format("Hi,%s:%s.%s",原创 2016-05-24 16:16:16 · 4500 阅读 · 0 评论 -
java 反斜杠转义
代码如下:public static void main(String[] args) { String str = "\\'"; System.out.println("'");// ' System.out.println("\'");// ' System.out.println("\\'");// \' 因为第二个斜杠被转义了,注意被转义了就变成正常的字符了,不原创 2016-03-21 22:49:22 · 7064 阅读 · 1 评论 -
java 哪个函数都可以操作类变量 / 类函数只能操作类变量
代码:package normal_api;import java.util.HashMap;import java.util.Map;/** * this is for static variable and single instance * @author root * */ public class StaticVariable { private sta原创 2016-04-09 00:21:48 · 538 阅读 · 0 评论 -
java 各种类型10进制转2进制, char 型转byte 型
代码:10进制转二进制, java 代码只提供了int 转,其他可以通过int 来转package decimal2binary;/** * 各种类型10进制转2进制, char 型转byte 型 * @author jialiangli * */public class Decimal2binary { /** * param 数据 * param 类型的位数原创 2016-06-15 17:55:14 · 1527 阅读 · 0 评论 -
java 求md5值,即md5加密算法
代码:package md5;import java.security.MessageDigest;/** * 求md5值分两步 * 1.拿到字符串的byte数组,注意abc 这种字母的byte 数组就是a一个元素b一个元素c一个元素,即[97,98,99], "我"作为一个汉字他的字节数组是3个byte,即[-26, -120, -111] * 通过字节数组算出hash值的原创 2016-06-15 18:19:19 · 1633 阅读 · 0 评论 -
tomcat配置https
tomcat配置https1.生成服务端证书(证书是给浏览器看的)keytool -genkeypair -alias “tomcat” -keyalg “RSA” -keystore “./tomcat.keystore”2.tomcat server.xml配置证书 <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"原创 2017-10-02 08:11:53 · 418 阅读 · 0 评论 -
csrf 原理与解决方案
一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。二.CSRF可以做什么? 你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号...原创 2017-10-09 08:18:35 · 6636 阅读 · 0 评论 -
json 三转 , 前端ajax的datatype为json后端传来jsonString 即可
代码:import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import org.junit.Test;/** * 第一个函数和第二个函数是stringToJsonObject * Created by jaloli on 2017/6/15. */public class DeviceQ原创 2017-06-15 16:47:09 · 1586 阅读 · 0 评论 -
java c3p0连接池 不用spring单独使用c3p0
如之前文章>所说:Connection 复用问题, 多线程共用一个Connection 对象,没问题, 他们不停地用这个Connection 对象去查询没问题, 猜测是Connection 类内部优化,(参考:http://blog.youkuaiyun.com/nx188/article/details/49818697)但是如果一个线程占用一个connection 过长, 导致其他线程无法原创 2016-06-25 13:06:20 · 2499 阅读 · 0 评论 -
log4j的用法(For Windows/linux/纯java应用/web应用) logback 的用法在evernote里面
log4j的用法:要进行两步,第一写一个配置文件log4j.properties,第二是在代码中引用这个配置文件并且写log第一步:log4j.properties内容如下:log4j.rootLogger=CONSOLE,FILE log4j.addivity.org.apache=truelog4j.appender.FILE=org.apache.log4j.FileAppen原创 2015-11-25 19:40:26 · 2018 阅读 · 0 评论 -
java 泛型方法 泛型类
泛型方法:/** * 1..泛型方法 打印各种类型的数组 * */ public static void printArray(E[] inputArray) { // 输出数组元素 for (E element : inputArray) { System.out.printf("%s ", element);// %s 是字符串型的数据 } Sys原创 2016-08-02 16:43:25 · 671 阅读 · 0 评论 -
java 流(2)scanner 接收键盘输入
代码如下:Scanner cin = new Scanner(System.in);int count = 0;while(cin.hasNext()) { if(count >= 2) System.out.println(cin.nextLine() +" "+ cin.nextLine()); count++;}打印结果200000000000000000002原创 2016-04-26 16:48:42 · 544 阅读 · 0 评论 -
java StringBuffer StringBuilder
代码:package test;/** * 当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类。 * 和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改, * 并且不产生新的未使用对象。 * @author jaloli * */public class StringBufferAndS原创 2016-08-02 11:12:43 · 366 阅读 · 0 评论 -
java treeMap 已经排好序即输出{1=, 2=, 4=, 5=, 6=, 8=}
treeMap 底层实现是一棵红黑树, 即是一棵平衡二叉查找树, 红黑树已经有序, 即根比左大比右小, treeMap 是通过key 的值作为红黑树节点的大小来排序代码:import java.util.Map;import java.util.TreeMap;public class RedBlackTree { public static void main(String[原创 2016-07-20 08:30:20 · 1393 阅读 · 0 评论 -
spring + c3p0 连接池配置
1. (1)seuatdb.properties 配置文件如下:(2)spring 配置文件beans-properties.xml 中配置数据源的写法:原创 2016-02-04 15:57:22 · 776 阅读 · 0 评论 -
java CountDownLatch 同步计数器
CountDownLatch类是同步计数器, 初始值100,调用countDown() 则计数器减去1,直到计数器等于0之前本句都可以执行latch.await(); 方法阻塞程序执行 , 直到CountDownLatch 为0,则继续执行本句后面的代码代码如下:package countDownLatchDemo;import java.util.concurrent.Co原创 2016-07-19 12:46:18 · 533 阅读 · 0 评论 -
java nio 常见的nio类, nio 写文件方法, nio 比io 的优势
代码:package NIO;import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.IOException;import java.io.RandomAccessFile;import java.net.InetSocketAddress;import java.net.S原创 2016-06-24 16:12:02 · 3752 阅读 · 0 评论 -
java 正则(1) 初步认识 / 中括号表范围 / 预定义字符类\s \w \d / 边界匹配 / 几个正则的例子 / 竖线是或者 / 中括号里加上尖号是非
java 正则package test.java.RegExp;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Order { public void RegexFirst() { //简单认识正则表达式的概念,通过String 类的函数开始 System.out.pri原创 2016-01-08 18:56:28 · 4681 阅读 · 0 评论 -
java 文件加密 用的是md5值进行文件加密
加密解密的背景, 原理和用法在代码注释里代码:import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;impo原创 2016-06-21 11:46:59 · 3629 阅读 · 0 评论 -
java 读写锁
读锁: 线程拿到读锁, 那么其他线程还可以拿读锁, 但是不能拿写锁写锁: 线程拿到写锁, 那么其他线程既不能拿读锁, 也不能拿写锁代码:package read.write.lock;import java.util.Random;import java.util.concurrent.locks.ReentrantReadWriteLock;public class R原创 2016-07-14 21:17:02 · 421 阅读 · 0 评论 -
java.util.concurrent java 并发包中的类
java 并发包类使用方法举例,持续集成ScheduledExecutorService / ExecutorService execute() / ExecutorService submit() / BlockingQueue / ConcurrentMap代码:package service;import java.util.concurrent.ArrayBlockin原创 2016-03-26 18:05:44 · 1909 阅读 · 0 评论 -
Map 和ConcurrentMap 线程不安全和线程安全证明
背景:Map 线程不安全,ConcurrentMap 线程安全证明方式:通过单词计数,多线程记录40000个单词,key 代表单词 "work”,value 代表计数值代码:package service;import java.util.HashMap;import java.util.Map;import java.util.concurrent.ConcurrentHas原创 2016-03-26 18:01:50 · 27007 阅读 · 1 评论 -
java 正则(4) 不常用 / 贪婪匹配 / 非捕获组 / 向前引用 / flag 简写
1.以下用的不多,正则前三个内容已经够用,以下掌握不了也没关系,论坛上有人用,能看懂就行。 贪婪匹配 :Greedy ,用在数量词之后 / 非捕获组 :其中 ?= 用的算相对较多的 / 向前引用 :用的极少 \\1 \\2 这种写法 / flag 简写 : ? i 是CASE_INSENSITIVE 的简写 //之前的正则内容已原创 2016-01-11 19:47:15 · 1830 阅读 · 0 评论 -
maven 普通java项目 / war 包
1. 目前提供两个程序供下载,后续会更新使用方法。其中一个是普通java 程序的maven 项目,第二个是web 项目。http://pan.baidu.com/s/1dEnqgkp 程序如下:原创 2016-01-26 15:51:13 · 723 阅读 · 0 评论 -
maven eclipse web项目 && 打war包
1. 新建maven web 项目,然后下面两项着重配置一下2. WEB-INF 文件夹需要自己新建,在文件夹里新建web.xml 文件图 3 目录结构3. 正常访问即可(servlet 的资源和html 静态资源均可)4. 打war 包pom 文件加上 org.apa原创 2016-01-26 14:42:32 · 3603 阅读 · 0 评论 -
java enum 一个枚举类型
java.lang.Enum Java 常用类中的最后一个,枚举类型。 使用enum 关键字可以定义一个java.lang.Enum 这个类型。Java 枚举类型在java 中是作为类封装起来的,具体类是怎么封装的,不要紧。比如,程序规定,等于1,做A(),等于-1,做B(),等于其他的不行。这个是在程序里做限制。如果这个包提供给别人,他要调用函数时候传过来一个5,那么编译时发现不了这原创 2016-01-04 17:20:26 · 743 阅读 · 0 评论