![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java 基础
文章平均质量分 61
tmj_159
这个作者很懒,什么都没留下…
展开
-
path 这个东西
刚毕业,感觉什么都是新的,可能我写的东西已经是老生常谈的东西了,如有不妥请大家指正. 前些天在公司学习richfaces,自己写小 demo 读文件的时候遇到了path 问题, 几经周折解决后,为了以后少犯这种错误,总结如下: Java 中文件的读取大概有以下几种方式: 一, File f=new File(path); 二,InputStr...2009-11-05 11:06:19 · 128 阅读 · 0 评论 -
Math.random 怎么产生随即数的
对JAVA程序员来说,我们都知道java.lang.Math类中有一个random的静态方法来生成随机数。这个方法生成一个double的随即数,这个数的范围在(0.0,1.0)之间,通过乘上某个数来完成0至某个数之间的随机数。 可是对于随即数如何产生的,到底这个数是不是真的随即你知道多少呢?一、随机数的产生 我们拿源码说话 pu...2013-02-22 16:22:29 · 252 阅读 · 0 评论 -
JAVA多线程解惑之多线程返回值
如果有人问题你,多线程可以有返回值吗?你怎么回答? 看下面例子,我定义了一个类实现了Callable 接口 public class MyCallable implements Callable<Object> { @Override public Object call() throws Exception { int i=10; Thread...2013-12-21 10:49:51 · 271 阅读 · 0 评论 -
JAVA多线程解惑之实现方式有几种
记得刚毕业的时候笔试或者面试通常会出现这样的问题“JAVA多线程有几种实现方式”,于是果断写下有两种,继承Thread抽象类或者实现Runnable接口。 但是当我们真正的观察Thread类的时候发现其实Thread也继承Runnable接口public class Thread implements Runnable{......Runnable 接口更加简单,留下一个抽...2013-12-20 18:12:36 · 178 阅读 · 0 评论 -
JNI 缺陷和类型映射
本文是基于维基百科中JNI英文文档翻译而来。E文文档地址:http://en.wikipedia.org/wiki/Java_Native_Interface 一、缺陷1.使用JNI细小的错误都能让这个JVM不稳定,并且这些错误很难再现和调试2.使用JNI的应用失去了JAVA本身提供的不同平台的可移植性。3.JNI 框架不提供自动的垃圾回收机制,所以这部分代码要考虑内存...原创 2013-12-02 17:29:30 · 220 阅读 · 0 评论 -
JNI 详细步骤
上次玩JNI大概是一年前的事情了,发现现在用还需要查资料,真是好记性赢不了三寸烂笔头,刚好用这个了,记下以后省的找资料了。 一、准备环境只列出我这次测试用到的环境和工具:1. jdk Version: 1.72. eclipse Version: Kepler Service Release 1 Build id: 20130919...2013-11-30 16:37:02 · 101 阅读 · 0 评论 -
java.util.HashMap 解析
HashMap 是我们经常使用的一种数据结构。工作中会经常用到,面试也会总提到这个数据结构,找工作的时候,”HashTable 和HashMap的区别“被问到过没有? 本文会从原理,JDK源码,项目使用多个角度来分析HashMap。 1.HashMap是什么 JDK文档中如是说”基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操...2012-10-15 15:32:29 · 2606 阅读 · 0 评论 -
jdk模拟 spring 利用注解完成依赖注入功能
依赖注入是Spring中一个极其重要的概念。 本文通过JDK的注解和反射机制来完成在Spring中完成依赖注入的功能。 预备知识,注解,反射机制 完成一个注解我们通常需要三个步骤1,定义注解,2,使用注解,3,解析注解 下面我们通过实例来解释注解的使用 定义注解package cn.tang.demos.sp...2012-10-12 17:44:31 · 172 阅读 · 0 评论 -
java.util.ServiceLoader 的使用
最近看一些源代码,里面用到了一个类ServiceLoad,感觉很有用,就学习了下。 这个在程序运行时动态选择接口的实现类,功能和Spring很像。 它的主要用法如下 ServiceLoader<ITest> testLoads=ServiceLoader.load(ITest.class);for(ITest t:testLoa...2012-10-12 11:32:47 · 275 阅读 · 0 评论 -
develop tips
1. 如果你的全局变量都是以某种前缀开始,那么去掉这些前缀,然后重命名你的全局变量类吧2014-05-26 11:05:06 · 84 阅读 · 0 评论 -
JAVA 获取机器IP 相关方法
积累点关于Java获取IP 和Host,判断操作系统类型方面的知识,现在多积累点,以后就能直接拿来用多好。1.获取IP,host用JDK自带的java.net.InetAddress.java来完成//获取IPString ipAddress = InetAddress.getLocalHost().getHostAddress();//获取hostNameString ...2014-07-18 10:29:33 · 134 阅读 · 0 评论 -
juc 下的集合之二 (ConcurrentHashMap)(JDK1.8版本)
为什么要再写一篇ConcurrentHashMap的文章,有下面几个原因:1. jdk1.8 和我上次写的1.6版本的在实现上差距很大,我也是今天看了下才发现,去年又一次去面试刚好问道这个地方了,我就胸有成竹的回答了有关同步,锁,效率的问题,今天一看基本全错了。2. 上次写的文章有点笼统,没有触及到问题的根本,只是在代码层面走了流程,这次我需要把没完成的问题一一解决。 所以此文...2016-03-19 14:27:53 · 261 阅读 · 0 评论 -
Ant 利用jcraft实现自动化打包, 和启动服务
之前我有写过ant的基本使用,以及一些常用配置,如果这些不懂,可以参考下本人的前些年写的文章 Ant的基本使用 以及Ant的常用配置 这篇文章主要讲如何利用jcraft来完成ant的远程拷贝文件以及执行远程脚本的功能来完成我们在项目中实现自动部署的一些事情。 首先介绍下JCraft,它是纯java实现的SSH2, 较高版本的ant就用到了这个库。我们...2015-11-18 14:33:13 · 171 阅读 · 0 评论 -
事务处理之二(编程中的事务)
这篇文章主要介绍在我们开发过程中怎么处理事务,当然编程语言仅限java.文章内容会从不使用任何框架直接用jdbc怎么处理事务,到使用mybatis,hibernate逐一讲解。 一、JDBC事务。 JDBC事务是通过Connection对象来完成事务的,主要的逻辑如下//得到Connection对象后,设置不自动提交conn.setAutoCommit(fa...2015-10-16 16:55:55 · 139 阅读 · 0 评论 -
HttpClient 使用
Apache 的HttpClient 提供很多工具让开发者使用,其中常用的一种是调用http的请求,下面代码就是模拟了http的post和get请求。package cn.tang.test.demo.httpclient;import java.io.IOException;import org.apache.commons.httpclient.DefaultHttpMe...2015-09-06 20:23:49 · 81 阅读 · 0 评论 -
juc 下的集合之七 (CopyOnWriteArraySet)
一、基本思想二、源码解析三、适用范围四、测试原创 2013-10-28 12:40:02 · 77 阅读 · 0 评论 -
java 读文件Path注意下面情况
虽然是很基础的东西,但是仍然愿意花时间写出来,我之前在实际项目中就遇到过这样的问题。用之前我写过的一个例子来说明这个事情。http://tangmingjie2009.iteye.com/blog/510459 假如你开发的程序有需要读一个自定义文件的功能,事实上这个情况很常见。你写来了如下类似代码。String fileName = "config.properties";...2014-08-21 13:50:29 · 122 阅读 · 0 评论 -
Java 系统相关参数获取
今天看lucene看到来源代码中有对操作系统和虚拟机方面的属性的工具类,特贴上以备后需。package org.apache.lucene.util;import java.lang.reflect.Field;import java.util.StringTokenizer;/** * Some useful constants. **/public...2015-01-29 15:39:19 · 83 阅读 · 0 评论 -
JDK 中压缩和解压缩
1.对文件进行压缩和解压基本很简单,我在windows平台测试过了,上代码 package cn.tang.zip;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;i...2013-09-12 14:18:55 · 241 阅读 · 0 评论 -
JAVA 进程最大内存
总听说32bit 系统中进程最大内存2G 类似的话,今天花了点时间来求证下,目前还有不完整的情况,后续补充。 首先说32位,这个概念最早应该是从CPU来的。通常32位CPU最大支持2^32Bytes内存也就是4GB,不过较新的CPU一般支持PAE模式,启用PAE模式理论上可以支持64GB的内存。 不过仅仅CPU支持是不行的,还需要操作系统支持。操作系统也有32位...2013-01-05 14:38:53 · 458 阅读 · 0 评论 -
JAVAWS cannot find message file
重装了系统,打开jnlp文件的时候无法打开了,上网搜索了下jnlp文件是javaws打开的,于是手动制定打开方式还是无法打开,给出一个莫名奇妙的提示:cannot find message file. 查了好久才查到这个问题,鉴于网上没有什么中文方面的帮助,我这里就写下解决方法,如果你有缘遇到这个问题,并且看到这个篇文章,也许能帮助到你。 出现这个问题的原...2012-08-09 15:10:49 · 978 阅读 · 1 评论 -
java关键字Transient(转)
Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。transient是Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,tr...原创 2010-06-29 15:27:35 · 65 阅读 · 0 评论 -
超连接传特殊值引发问题的解决方案
web 开发中总会遇到用超连接进行传递参数(名值对的形式).如果我们传递的是普通的英文数字那好说,没有什么问题,如果是汉字,或者特殊字符那可能就有问题了还好 JDK 中提供了解决方案分别是 java.net.URLEncoder 和 java.net.URLDecoder 两个类 用法举例:String a="#$%^";try{ String ea=java...2010-05-21 16:04:54 · 69 阅读 · 0 评论 -
String 类中replace 和replaceAll方法的区别
做项目的时候有发现问题记录下的习惯,今天刚了解到点东西,发发牢骚而已 做解析域控制器(Active Directory)的用户和组织单位的时候需要对特殊符号的处理, 习惯性的 str.replaceAll("+","\\+"); 结果出现java.util.regex.PatternSyntaxException 查询了下原因是要改变的字符序列中包含正则表达式中特殊...2010-12-13 15:16:01 · 525 阅读 · 0 评论 -
Java虚拟机(JVM)中的内存设置详解 转载
在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步。PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域Heap space:存放Instance。GC(Garbage Collecti...原创 2010-07-29 09:00:48 · 82 阅读 · 0 评论 -
常用正则表达式学习
做项目的时候不可避免的要用到各种验证,有时候如果我们写验证逻辑可能要写好长好长代码,这时候如果我们正则表达式可以很简单而且轻松的解决问题. 以下仅列出经常遇到的一些正则表达式,项目中如果还可以遇到,继续补充... 1.非负整数 (正整数+0) "^\d+$" 解释: ^ 表示 匹配输入字符串的开始位置 ...2009-12-10 15:19:54 · 78 阅读 · 0 评论 -
多线程的帮助类(CountDownLatch,Excutor,Executors)
JDK1.5有几个很重要的线程帮助类,对处理线程序很有帮助,他们分别是CountDownLatch ,Executor ,Executors,下面是他们的简单用法package com.tang.test;import java.util.concurrent.CountDownLatch;public class Job implements Runnable { p...2009-11-17 17:41:33 · 110 阅读 · 0 评论 -
资源文件读取笔记
今天用到了资源文件读取 ,今天先记下来,以后用到了再添加进来. 资源文件 bin目录下的sql.configpackage com.tang.test;import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class TestR...2009-11-06 18:52:47 · 70 阅读 · 0 评论 -
打,包含第三方JAR的JAR包
想了一会真的不知道该怎么表述文章的标题,好不容易想了个还算满意的,仔细一念感觉。。。。算了,天生就笨。这样吧 因为前两天,项目给测试测的时候,数据库部分出现了点问题(其实是乱码问题,本来很好解决的,想复杂了。。。。这里不跑题了)。想写个测试程序到测试的机器看看,代码倒是一下子就写完了,结果打JAR包的时候费了半天的时间,离上次手工打包的时候也不过3个月呀,看来果然是好记...2010-10-28 14:30:01 · 69 阅读 · 0 评论 -
IO读写(资源文件)
工作也有一年左右了,发现IO的使用还是很多的,主要是配置文件比较多。虽然理解起来并不复杂,看看源码看看API重新写一个自己需要的也要不了多少时间,权且记下,给自己添加一点印象也给初学者多一点学习资料吧。 要想了解IO,必须知道字符和字节了,具体区别GOOGLE,IO流有分别针对字符和字节的两大分支,这里字符字节分别一个例子。 以p...原创 2010-11-08 18:15:11 · 93 阅读 · 0 评论 -
juc 下的集合之六 (CopyOnWriteArrayList )
一、基本思想 ArrayList的一个变体,通过对原来数组的拷贝,来保证不同操作情况下的线程安全。 这个容器类内部有大量的数组拷贝操作二、源码解析 2.1 基本数据结构 /** The lock protecting all mutators */ transient final ReentrantLock lo...原创 2013-04-10 09:02:32 · 64 阅读 · 0 评论 -
juc 下的集合之四 (ConcurrentSkipListMap)
一、基本思想二、源码解析三、适用范围四、测试2013-03-06 10:17:42 · 69 阅读 · 0 评论 -
juc 下的集合之五 (ConcurrentSkipListSet)
一、基本思想二、源码解析三、适用范围四、测试2013-03-06 10:17:01 · 110 阅读 · 0 评论 -
juc 下的集合之三 (ConcurrentLinkedQueue)
一、基本思想首先是它是线程安全的,其次基于链的节点的,然后是没有容量限制,最后一个是它是一个队列。 二、源码解析2.1 内部类里面相对来说比较简单,没有什么多余的东西。private static class Node<E> //节点的内部类private class Itr implements Iterator<E> //迭代器...2013-03-06 10:14:41 · 139 阅读 · 0 评论 -
juc 下的集合之二 (ConcurrentHashMap)
一、基本思想基于HASH表的并发map(map怎么翻译,感觉叫E文更加通用点吧)。有跟java.lang.HashMap一样的方法,但是每个方法都是线程安全的。建议对HashMap了解之后再看这篇文章,关于HashMap本人之前写过一篇博客来说明http://tangmingjie2009.iteye.com/blog/1698595二、源码解析2.1 基本常量...2013-03-06 10:13:51 · 114 阅读 · 0 评论 -
juc 下的集合之一 (ArrayBlockingQueue)
一、基本思想 基于数组的阻塞队列,它既有队列的特性--先进先出(first-in-first-out),又有数组的特性--有限大小(bounded-buffer),一旦被创建,就不会增加容量。 二、源码解析 2.1基本数据/** The queued items */ private final E[] items; //数组 ...2013-03-06 10:12:20 · 71 阅读 · 0 评论 -
juc 下的集合(概括)
做后台服务器开发已有好几年,慢慢的对多线程和集合有了一些理解,是时候抽点时间来整理下这方面的知识了。 关于线程安全的集合,确切的来说在JDK1.5之前是没有的,虽然对于大家熟悉的有Vector,HashTable,但是在多线程下会出现一些问题,比如常见的ConcurrentModificationException。 JDK1.5之后java...2013-03-04 11:09:29 · 169 阅读 · 0 评论 -
JAVA获取时间戳,哪个更快
目前获取毫秒值大概有下面三种方法 //方法 一System.currentTimeMillis(); //方法 二Calendar.getInstance().getTimeInMillis();//方法 三new Date().getTime(); 最近做监控系统,发现代码中有前两种方法,然后突然有了一个想法,到底哪个更快呢?然后做了如下实验: imp...2012-05-28 18:06:34 · 1167 阅读 · 0 评论 -
乐观锁不乐观,悲观锁不悲观
写博客的人可能越来越少了,先mark下吧,后期补。2017-08-29 17:12:19 · 181 阅读 · 0 评论