
java基础知识
重生之我是一名程序员
IN IT && WIN IT !
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
System类中环境属性
file.separatorjava.class.pathjava.class.versionjava.compilerjava.ext.dirsjava.homejava.io.tempdirjava.library.pathjava.specification.namejava.specification.vendorjava.specification.versionja原创 2017-09-17 16:52:46 · 243 阅读 · 0 评论 -
java中重写equals一定要重写hashCode方法
java中重写equals一定要重写hashCode方法原作者博客地址: Working With hashcode() and equals()equals和hashCode方法equals(Object obj): 由Object类提供,用来判断当前对象和obj是否相等。JDK中默认实现方式是基于内存地址:只有两个对象的内存地址相等,那么它们才相等hashCode(): 该...转载 2018-04-19 10:06:47 · 830 阅读 · 0 评论 -
InputStream不能被重用问题
InputStream不能重用问题情景使用InpustStream读取文件内容,并且使用同一个InputStream进行对象反序列化的时候问题重现: @Testpublic void readFromFile(){ File file = new File("person.data"); try (InputStream is = new FileIn...转载 2018-04-20 18:50:24 · 1223 阅读 · 0 评论 -
trycatchfinally的一些理解
trycatchfinally的一些理解情景1:try-finally-with-return测试用例:public int tfWithReturnTest(){ try{ System.out.println("enter try block..."); return 1; }finally { System.out.p...转载 2018-04-21 12:59:46 · 338 阅读 · 0 评论 -
String中的intern方法
String中的intern方法基于jdk1.7前言我们知道在jdk1.6及之前,常量池是放在了方法区上的,而在jdk1.7之后的版本,java将牛原本在方法区(perm)中的常量池放在了堆上了,而在jdk1.8之后,取消了方法区,使用meataSpace代替了方法区。测试用例: @Testpublic void internTest(){ String ...转载 2018-05-07 10:19:20 · 127 阅读 · 0 评论 -
java中重写equals一定要重写hashCode方法
java中重写equals一定要重写hashCode方法原作者博客地址: Working With hashcode() and equals()equals和hashCode方法equals(Object obj): 由Object类提供,用来判断当前对象和obj是否相等。JDK中默认实现方式是基于内存地址:只有两个对象的内存地址相等,那么它们才相等hashCode(): 该...转载 2018-05-07 13:53:12 · 361 阅读 · 0 评论 -
数字末尾去零问题
数字末尾去零问题在格式化保留N位小数之后可能出现不必要的0,如2.3保留两位小数后变成2.30,不太人性化前端使用parseFloat函数: function toHumanYuan(money){ return parseFloat((money/100).toFixed(2));}// 如2.3即经过toFixed(2)后变成2.30, 但经过parse...转载 2018-05-30 17:16:40 · 2233 阅读 · 0 评论 -
BigDecimal中divide方法注意问题
BigDecimal中divide方法抛异常:Non-terminating decimal expansion; no exact representable decimal result在使用BigDecimal rate = new BigDecimal(1).divide(new BigDecimal(3));时抛异常: Non-terminating decim...转载 2018-05-31 08:41:51 · 145734 阅读 · 14 评论 -
java对象初始化顺序
java对象初始化顺序直接上测试吧: Father.java: public class Father { private static Property FatherStaticProp = new Property("调用Father的静态属性"); private Property FatherNonStaticProp = new Property(...转载 2018-07-24 08:45:40 · 321 阅读 · 0 评论 -
java Matcher中的group
java Matcher中的group结论:group(0)得到的是匹配到的整个字符串,group(1)对应第一个括号的内容,group(2)对应第二个括号的内容,以此类推@Testpublic void groupTest(){ String text = "abaaabccab1234ababcccab432dog"; String regexp = "(a*b)([...转载 2018-09-12 09:05:16 · 12273 阅读 · 0 评论 -
java中getClass和instance区别
java中getClass和instance区别public class Person {}public class Son extends Person {}@Testpublic void classAndInstanceOfTest(){ Person person = new Person(); Son son = new Son(); Sy...转载 2018-04-18 16:26:17 · 1778 阅读 · 0 评论 -
java区分重载
java区分重载区分重载方法:方法名称相同,但参数的数量不同方法名称相同,方法参数类型不一样方法名称相同,但不能根据返回值来判断重载public class PlainString { private String value; public PlainString(String value) { this.value = value;...转载 2018-04-18 10:20:24 · 283 阅读 · 0 评论 -
java_lang_class
了解ClassgetDeclaredFields和getFieldsgetDeclaredFields getDeclaredFields:Returns an array of Field objects reflecting all the fields declared by the class or interface represented by this Class o...转载 2018-04-12 10:10:14 · 213 阅读 · 0 评论 -
java中的编译、运行和构建
编译方法重载 方法重载:这个是发生在编译时的。方法重载也被称为编译时多态,因为编译器可以根据参数的类型来选择使用哪个方法。泛型 泛型(又称类型检验):这个是发生在编译期的。编译器负责检查程序中类型的正确性,然后把使用了泛型的代码翻译或者重写成可以执行在当前JVM上的非泛型代码。这个技术被称为“类型擦除“。换句话来说,编译器会擦除所有在尖括号里的类型信息继承 继承:发生在编译时,因为它转载 2017-10-11 09:08:33 · 1663 阅读 · 0 评论 -
map的三种遍历方式
map的三种遍历方式 Map<String, String>map = new HashMap<>(); map.put("a","aa"); map.put("b","bb"); map.put("c","cc"); map.put("d","dd"); //第一种 for (String key: ma原创 2017-09-24 08:15:25 · 1439 阅读 · 0 评论 -
enum枚举认识
enum枚举认识enum特点:枚举不能继承其他类,但是所有的枚举都继承超类java.lang.Enum,可以实现接口枚举不能是超类,因为它是final修饰的枚举的构造函数修饰符只能是private和default,因此不能通过new出对象实例枚举常量都是 public static final类型的调用枚举实例的时候会调用所有实例的构造函数,并且只调用一次调用枚举实例的时候会调用所有实例转载 2017-11-24 21:03:56 · 273 阅读 · 0 评论 -
浅拷贝和深拷贝
浅拷贝(shadow copy)和深拷贝(deep copy)在设计模式中的原型模式中需要用到浅拷贝和深拷贝浅拷贝: 拷贝基本属性,对于引用类型只拷贝其引用 深拷贝: 不仅拷贝基本属性,对于引用类型中的基本类型也拷贝一份实现clone步骤: 1.实现Cloneable接口 2.重写Object类型的clone方法Cloneable接口: public interface...转载 2018-03-19 11:08:24 · 285 阅读 · 0 评论 -
enum类型
enum类型实例public enum SingleTon { INSTANCE_1, INSTANCE_2; SingleTon() { System.out.println("SingleTon constructor invoked..."); }}测试@Testpublic void enumSingleTon...转载 2018-03-23 09:05:37 · 198 阅读 · 0 评论 -
Class.forName和classLoader.loadClass加载类区别
Class.forName和classLoader.loadClass加载类区别public class PrivateCar { private static int price = 123; public PrivateCar() { System.out.println("constructor invoke..."); } st...转载 2018-04-08 18:20:18 · 858 阅读 · 0 评论 -
callback例子
callback例子1.声明callback接口: public interface ICallBack { public void process(String result);}2.client实现callback接口: public class Client implements ICallBack { private RemoteServ...转载 2018-03-28 10:46:48 · 927 阅读 · 0 评论 -
String和基本包装类作为参数在传递问题
String和基本包装类作为参数在传递问题public class ReferenceDemo { public static void StringReference(){ String a = new String("abc"); String b = a; changeString(b); System.out...转载 2018-04-17 18:20:46 · 1280 阅读 · 1 评论 -
java中的自动装箱和自动折箱
java的自动装箱和自动折箱包装类(wrapper)和基本类型(primitive)基本类型: byte,short,char,int,long,float,double,boolean包装类为: Byte,Short,Character,Integer,Long,Float,Double,Boolean自动装箱和自动折箱自动装箱: 基本类型转成包装类的过程,通过调...转载 2018-04-17 18:24:34 · 279 阅读 · 0 评论 -
java集合中的遍历方法
java集合中的遍历方法一般在遍历java集合的时候有三种方式:for-loop、增强for和iteratorpublic static void forEnhancedMethod(){ for (String str: list){ System.out.println(str); }}public static void forLoopMet...转载 2018-12-23 22:00:55 · 303 阅读 · 0 评论