
Java学习笔记
海无垠
好高骛远要不得,心动不如手动!
展开
-
java位运算
java位运算转载 2022-07-29 11:14:06 · 842 阅读 · 0 评论 -
Java并发相关
转载自 https://www.cnblogs.com/klbc/p/9500947.html原创 2020-05-17 01:08:31 · 153 阅读 · 0 评论 -
合理使用ArrayMap代替HashMap
转载请标注:披萨大叔的博客 http://blog.youkuaiyun.com/qq_27258799/article/details/51861350我们都知道当key是int的时候,用SparseArray代替HashMap是个更省内存的方案。如果key是String或者其他自定义类型呢,不要忘了还有ArrayMap。ArrayMap是一个< key,value >映射的数据结构,它设计上更多的是考虑内存的优化,内部是使用两个数组进行数据存储,一个数组记录key的hash值,另外一个数组记录Va转载 2020-05-17 00:59:23 · 195 阅读 · 0 评论 -
Java常见问题
1、java中==和equals和hashCode的区别基本数据类型的比较的值相等.类的比较的内存的地址,即是否是同一个对象,在不覆盖equals的情况下,同比较内存地址,原实现也为 == ,如String等重写了equals方法.hashCode也是Object类的一个方法。返回一个离散的int型整数。在集合类操作中使用,为了提高查询速度。(HashMap,HashSet等比较是否为同一个)如果两个对象equals,Java运行时环境会认为他们的hashcode一定相等。如果两个对象不equals,他们原创 2020-05-16 21:20:12 · 342 阅读 · 0 评论 -
Java中的时区转换
转载自 halfclear 原文:https://blog.youkuaiyun.com/halfclear/article/details/775739561.Date中保存的是什么在java中,只要我们执行Date date = new Date();就可以得到当前时间。如:Date date = new Date();System.out.println(date);输出结果是:Thu...转载 2019-05-23 13:10:10 · 12405 阅读 · 0 评论 -
java-synchronized与locks 锁 简析
Lock和synchronized的选择总结来说,Lock和synchronized有以下几点不同:1)Lock是一个由jdk提供的,而synchronized是Java中的关键字,synchronized是内置的语言实现;2)synchronized在发生异常时,会自动释放线程占有的锁,因此不会导致死锁现象发生;而Lock在发生异常时,如果没有主动通过unLock()去释放锁,则很可能造成...原创 2019-04-16 18:35:06 · 216 阅读 · 0 评论 -
对象初始化的流程
对象的初始化流程如下:静态成员代码块初始化按照逻辑顺序初始化父类的静态成员初始化父类的静态代码块初始化子类的静态成员初始化子类的静态代码块初始化父类的非静态成员初始化父类的非静态代码块初始化父类的构造方法初始化子类的非静态成员初始化子类的非静态代码块初始化子类的构造方法注:父类及子类的静态成员和静态代码块只在程序运行时加载一次。...原创 2019-04-12 13:55:36 · 299 阅读 · 0 评论 -
接口-抽象类-内部类
引言 一、接口 接口是什么? 为什么使用接口? 怎么使用接口? 二、抽象类和接口 什么是抽象类? 抽象类和接口的区别有哪些? 共同点: 差异点: 注意: 三、内部类 什么是内部类? 为什么使用内转载 2018-03-06 18:58:27 · 368 阅读 · 0 评论 -
举出几种 HashMap 的迭代方式
HashMap<String, String> emails = new HashMap<String, String>(); //方法一: 用entrySet() Iterator it = emails.entrySet().iterator(); while(it.hasNext()){ Map.Entry m=(Map.Entry)it.next(); System.out.p原创 2017-09-21 14:44:23 · 447 阅读 · 0 评论 -
关于反射的运行时机
反射在编译的时候不知道自己要做什么,因而是运行时!运行的时候才知道自己干嘛。相反,范型是:编译之后,程序会采取去泛型化的措施,也就是说Java中的泛型,只在编译阶段有效。在编译过程中,正确检验泛型结果后,会将泛型的相关信息擦出,并且在对象进入和离开方法的边界处添加类型检查和类型转换的方法。也就是说,成功编译过后的class文件中是不包含任何泛型信息的。泛型信息不会进入到运行时阶段原创 2016-12-27 22:22:36 · 539 阅读 · 0 评论 -
final finally finalize
final修饰的类不能被继承,修饰的方法不能被重写,修饰的变量为常量不能被修改,但是final修饰的变量只是引用的值不变,对引用变量的内存空间没有约束力例如: final StringBuilder str=new StringBuilder("str"); str.append("asd"); 打印:str=原创 2015-07-21 21:24:58 · 315 阅读 · 0 评论 -
Android Activity的四种加载模式
standard:标准模式每次启动将activity添加到task栈中,不会启动新的task,每次启动将会创建一个activity实例并放入task中,退出时将从栈顶逐一删除activitysingleTop :Task 顶单例模式:与standard模式区别在于,如果要启动的activity位于栈顶将不再新创建activity实例,而是直接复用,其他的一致singTask Task内原创 2015-04-10 17:01:47 · 259 阅读 · 0 评论 -
单例模式 简单工厂模式
设计模式:解决固定问题的固定办法单例设计模式:对外只能得到一个对象的模式单例设计模式的实现有两种: 1:懒汉式class Person{ private static Person instance; private Person(){ System.out.println("===private Person()===="); } public static Pe原创 2015-07-10 20:55:27 · 331 阅读 · 0 评论 -
关于日期格式化的两种方式
第一种: Date date=new Date(); DateFormat df=DateFormat.getDateInstance(); String str=df.format(date); System.out.println(str); 第二种:可以按照自己的意愿获得想要的日期格式 Date date=new Date();原创 2015-07-10 20:20:38 · 534 阅读 · 0 评论 -
关于String Stringbuffer StringBuilder
相同点:都是用来存储字符串的容器类 不同点: String是定长的字符串,一旦实例化后大小就不能改变 Stringbuffer是变长字符串,是线程安全的 StringBuilder是变长的字符串,是线程不安全的String不能对已有的字符串进行添加操作,普通的str+“sfsdf”等,虽然是将后边的字符串拼接到了str 上,但是在内存上是将原先的str指向的内存空间舍弃了,又原创 2015-07-10 19:56:24 · 271 阅读 · 0 评论 -
关于安卓api版本支持问题
Unable to resolve target 'android-8' 打开project.properties把target=android-8改成你的api版本,自己的api版本可以直接从项目的Android的jars包中看到原创 2015-04-16 15:20:10 · 298 阅读 · 0 评论