Java-基础知识
文章平均质量分 72
Java-基础知识
OkidoGreen
这个作者很懒,什么都没留下…
展开
-
Java transient关键字
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 这样当多个线程转载 2014-05-29 14:23:26 · 1669 阅读 · 0 评论 -
JAVA字符串格式化-String.format()的使用
常规类型的格式化String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。format(Lo转载 2015-07-28 13:10:55 · 1313 阅读 · 0 评论 -
Java 输出日历格式
package com.wonders.task.sample.main; /** * */import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;/** * 一个日期处理类,在该类中,构造函数Dat转载 2015-08-06 17:40:30 · 3429 阅读 · 0 评论 -
Java 读取 Properties 文件 获取参数值
package com.wonders.schedule.util;import java.io.InputStream;import java.util.Properties;public class PropertyUtil { private static Properties p = null; public synchronized static void initP(原创 2014-04-02 06:51:54 · 5069 阅读 · 0 评论 -
深入理解Java:SimpleDateFormat安全的时间格式化
想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。下面我们通过一转载 2016-05-12 09:58:14 · 2233 阅读 · 1 评论 -
JAVA获取同一路径下所有子类或接口实现类
整个测试代码如下:Java代码 package find; import java.io.File; import java.io.IOException; import java.net.URL; import java.util.ArrayList; import java.util.List; impo转载 2016-05-04 10:06:20 · 3887 阅读 · 0 评论 -
Java double 相乘的小问题记录
看下面的一段代码的运行结果:[java] view plain copy public class TestDouble { public static void main(String[] args) { double d =538.8; System.out.println(d*100);转载 2016-05-19 15:58:41 · 2777 阅读 · 1 评论 -
String.getBytes()
在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不通OS下,返回的东西不一样! String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如 byte[] b_gbk = "中".getBytes("GBK"); byte[] b_utf8转载 2016-05-21 13:33:00 · 2163 阅读 · 1 评论 -
Arrays.asList引起的惨案
最近代码中需要对两个数组求交,想当然便用到了List中的retainAll函数,但要将将数组转换成list。代码如下:String[] abc = new String[] { "abc", "acd", "add" };String[] abd = new String[] {"acd", "cd", "de"};List abcList = Arrays.asList(ab转载 2016-07-05 22:50:59 · 1780 阅读 · 1 评论 -
java String.split丢失结尾空字符串的问题
java中的split函数用于将字符串分割为字符数组是很方便的,但由于不是很熟悉,犯了错误如下:String strtest = "1,2,";String arry[] = strtest.split(",");这样得到的数组元素个数只是2两个,为什么呢,最后一个","后没有内容,它没有作为空字符串成为第三个数组元素,结尾的空字符串被丢弃了!这个函数还有另一种转载 2016-10-10 17:09:20 · 4037 阅读 · 0 评论 -
RunTime.getRunTime().addShutdownHook用法
今天在阅读Tomcat源码的时候,catalina这个类中使用了下边的代码,不是很了解,所以google了一下,然后测试下方法,Tomcat中的相关代码如下: Runtime.getRuntime().addShutdownHook(shutdownHook); 这个方法的含义说明: 这个方法的意思就是在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系转载 2016-11-03 11:02:38 · 919 阅读 · 0 评论 -
JDK动态代理实现原理
地址:http://rejoy.iteye.com/blog/1627405之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。 废话不多说了,先来看一下JDK的动态是怎么用的。 Java代码 p转载 2012-12-06 10:56:59 · 3414 阅读 · 0 评论 -
java,lang.Void类
在一次源码查看ThreadGroup的时候,看到一段代码,为以下: [java] view plain copy /* * @throws NullPointerException if the parent argument is {@code null} * @throws SecurityExce转载 2016-10-27 15:55:17 · 1064 阅读 · 0 评论 -
java 判断是否中文字符
[java] view plaincopypackage test; import java.util.Random; public class IsChineseOrEnglish { // GENERAL_PUNCTUATION 判断中文的“号 // CJ转载 2014-01-28 16:40:09 · 2619 阅读 · 0 评论 -
java 判断含有中文的字符串的长度
public static boolean isLetter(char c) { int k = 0x80; return c / k == 0 ? true : false; } /** * 判断字符串是否为空 * @param str * @return */ public static boolean isNull(Str转载 2014-01-28 16:41:31 · 45453 阅读 · 4 评论 -
Java中的浮点数比较 == equals 和 compare
前几天有位同学问我一个问题,为什么float和double不能直接用==比较?例如: [java] view plain copySystem.out.println(0.1d == 0.1f); 结果会是flase 当时我只是简单的回答,因为精度丢失,比较结果是不对的。那么,到底为什么不对呢? 此文略作整理记录。类型升级(type promotion)...转载 2016-11-22 15:20:54 · 11644 阅读 · 0 评论 -
Java浮点数的精确计算及表示
转自:http://blog.csdn.net/stevene/article/details/586089 问题提出 (1)、浮点数精确计算胜利油田三流合一项目中一直存在一个问题,就是每次报表统计的物资金额和实际的金额要差那么几分钱,和实际金额不一致,让客户觉得总是不那么舒服,原因是因为我们使用Java的浮点类型double来定义物资金额,并且在报表统计中我们经常要进行...转载 2016-11-22 16:39:12 · 1041 阅读 · 0 评论 -
编译出错:对于常量池来说,字符串表示的UTF过长,那我想知道,JVM的常量池到底有多大?
输入缓冲说是8000个字符,和这有关吗?解决方案 »虚拟机必须为每个被装载的类型维护一个常量池。常量池就是该类型所用到常量的一个有序集和,包括直接常量(string,integer和floating point常量)和对其他类型,字段和方法的符号引用。对于String常量,它的值是在常量池中的。而JVM中的常量池在内存当中是以表的形式存在的,转载 2017-01-10 12:16:20 · 7745 阅读 · 1 评论 -
Java隐晦的int溢出 切忌想当然
public static void main(String[] args) { int u1 = 1475143069; Date d = new Date(u1 +1000); long u2 = u1 *1000; long u3 =(long)u1 * 1000; System.out.println(u1);转载 2017-01-23 12:02:30 · 4010 阅读 · 0 评论 -
JAVA – 虚函数、抽象函数、抽象类、接口
Java – 虚函数、抽象函数、抽象类、接口1. Java虚函数虚函数的存在是为了多态。C++中普通成员函数加上virtual关键字就成为虚函数Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑定是Java的默认行为。如果Java中不希望某个函数具有虚函数特性,可以加上final关键字变成非虚函数PS: 其实C++和Java在虚函数的观点大同小异转载 2017-03-22 17:05:01 · 1249 阅读 · 0 评论 -
java.util.ResourceBundle使用详解
java.util.ResourceBundle使用详解 一、认识国际化资源文件 这个类提供软件国际化的捷径。通过此类,可以使您所编写的程序可以: 轻松地本地化或翻译成不同的语言 一次处理多个语言环境 以后可以轻松地进行修改,支持更多的语言环境 说的简单点,这个类的作用就是读转载 2012-11-06 16:46:27 · 1575 阅读 · 0 评论 -
java 判断两个数是否异号
java 整型int占4个字节32位,两个数异或后移动31位判断结果,如果是1则异号,如果是0则同号 1 public class ShowEnviromentViarible { 2 3 public static void main(String[] args) { 4 int num1 = 1; 5 int num2 = -1;转载 2017-07-11 17:12:13 · 2701 阅读 · 0 评论 -
JAVA中Long与Integer比较容易犯的错误
今天使用findbugs扫描项目后发现很多高危漏洞,其中非常常见的一个是比较两个Long或Integer时直接使用的==来比较。 其实这样是错误的。因为Long与Ineger都是包装类型,是对象。 而不是普通类型long与int , 所以它们在比较时必须都应该用equals,或者先使用longValue()或intValue()方法来得到他们的基本类型的值然后使用==比较也是转载 2016-05-14 20:40:19 · 5557 阅读 · 0 评论 -
Java 中int与byte数组转换详解
1、与运算符的理解(&): 参加运算的两个数据,按二进位进行“与”运算。如果两个相应的二进位都为1,则该位的结果值为1,否则为0。即 0&0=0;0&1=0;1&0=0;1&1=1;例子:int x = 62255550; y =0xff; 转二进制:x = 62255550 = 11101101011111000110111110;y转载 2014-08-14 21:37:56 · 1907 阅读 · 0 评论 -
[转]java中byte转换int时为何与0xff进行与运算
在剖析该问题前请看如下代码public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i String hex = Integer.toHexString(b[ i ] & 0xFF); if (hex.length() == 1) { hex = '转载 2014-07-01 13:08:02 · 1716 阅读 · 0 评论 -
Java Double 浮点数 比较大小 & 相等比较
https://blog.csdn.net/z69183787/article/details/53286492 public class DoubleComparer { private static final double DEFAULT_DELTA = 0.000001; //默认比较精度 //比较2个double值是否相等(默认精度) public...转载 2018-07-31 18:42:06 · 12161 阅读 · 0 评论