
Java注意事项
小阳世界2023
万物皆程序
展开
-
引用,指针,C++,java
引用和指针有如下三种区别: 1 引用必须在声明时初始化,而指针不用; 2 对于NULL不能引用,而指针可以指向NULL; 3 引用一旦声明,引用的对象不能改变(但对象的值可以改变);而指针可以随时改变指向的对象。 引用能做到的,指针也可以,但指针更危险; (1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。 (2)不能有N转载 2016-10-11 11:27:40 · 340 阅读 · 0 评论 -
单例模式优化
private static volatile SettingsDbHelper sInst = null; // <<< 这里添加了 volatile public static SettingsDbHelper getInstance(Context context) { SettingsDbHelper inst = sInst; // <<< 在这里创建临时变量原创 2017-11-27 16:03:26 · 348 阅读 · 0 评论 -
java易错
Java是一种强类型语言。原创 2016-10-22 13:48:49 · 342 阅读 · 0 评论 -
正则表达式的三种模式【贪婪、勉强、侵占】的分析
正则表达式的三种模式【贪婪、勉强、侵占】的分析假定要分析的字符串是xfooxxxxxxfoo 模式.*foo (贪婪模式): 模式分为子模式p1(.*)和子模式p2(foo)两个部分. 其中p1中的量词匹配方式使用默认方式(贪婪型)。 匹配开始时,吃入所有字符xfooxxxxxx去匹配子模式p1。匹配成功,但这样以来就没有了字符串去匹配子模式p2。本轮匹配失败;第二轮:减少p1部转载 2016-10-31 11:48:28 · 1020 阅读 · 0 评论 -
回调函数
回调函数就是一个通过函数指针(函数地址)调用的函数。如果把函数的指针(也即函数的地址)作为参数传递给另一个函数,当通过这个指针调用它所指向的函数时,称为函数的回调。 回调函数不是由该函数的实现方直接调用的,而是在特定的事件或条件发生时,由另外的一方调用的,用于对该事件或条件进行响应。 软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三转载 2016-10-18 20:25:07 · 276 阅读 · 0 评论 -
Java中equal和==的区别
java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值。 2.复合数据类型(类) 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否转载 2016-10-27 10:19:46 · 259 阅读 · 0 评论 -
final 修饰符
“不可变”的属性不再提,现在说下可执行宏替换的final变量 public satic void mian(String[] args){ String s1 =""疯狂Java;;String s2 =““疯狂”+“Java””;System.out.println(s1==s2);String str1 = ""疯狂;String str2 = ““原创 2016-10-22 21:29:25 · 223 阅读 · 0 评论 -
缓存的简单例子
在Integer类中,看源码的系统把一个-128-127之间的整数自动装箱成Integer实例,并放入一个名为cache的数组中缓存起来,如果以后把一个-128-17之间的整数装箱成一个Integer实例时,实际上是指向对应的的数组元素,因此-128-127之间的同一个整数自动装箱成Integer实例时,永远是引用cache数组的同一个数组元素。当不在这个范围时,系统会重新创建一个Integer实原创 2016-10-22 21:17:46 · 555 阅读 · 0 评论 -
java万物皆对象的说法
除了基本数据类型外都是对象,因为基本数据类型不具备““对象的特性””:没有成员变量,方法可以被调用,Java之所以提供8中基本类型,主要是为了照顾程序员的习惯。原创 2016-10-22 21:11:03 · 1618 阅读 · 0 评论 -
形参个数可变的方法
从JDK1.5后,Java允许定义形参个数可变的参数,从而允许为方法指定数量不一定的形参,如果在定义方法时,最后一个形参的类型后面加三个点(...),则表明该形参可接受多个参数值,多个参数值被当成数组传入。public static void test(int a,String... books)public static void test(int a,String[] books)原创 2016-10-22 20:40:41 · 380 阅读 · 0 评论 -
面向对象和基于对象
基于对象也使用对象,但是无法利用现有的对象模板产生新的对象类型,继而产生新的对象,也就是说,基于对象没有继承的特点,而多态则更需要继承,没有了继承的概念也就谈不上多态。例如,JavaScrip是基于对象的的,它使用一些封装好的对象,调用对象的方法,设置对象的属性;但是他们让开发者派生新的类,开发者使用现有对象的方法和属性。判断语言是否是面向对象的就可以使用继承和多态来判断,面向对象和基于对象都原创 2016-10-22 19:26:49 · 289 阅读 · 0 评论 -
面向对象与面向过程
面向对象比面向过程的编程颗粒要大:面向对象的程序单位是类;面向过程的程序单位是函数(相当于方法)定义一个类,对应客观世界的那种事物;业务需要关心这个事物的哪些状态,程序就为这些状态定义成员变量;业务需要关心这个事物的哪些行为,程序就为这些行为定义方法。面向过程的世界里,一切以函数为中心,函数最大,因此这些事情会用以下语句来表达:吃(猪八戒,西瓜)面向对象的程序世界里,一切以对象为中原创 2016-10-22 19:17:59 · 263 阅读 · 0 评论 -
Integer
Interger:整数类型1、属性。static int MAX_VALUE:返回最大的整型数; static int MIN_VALUE:返回最小的整型数; static Class TYPE :返回当前类型。例子: System.out.println(“Integer.MAX_VALUE: ” + Integer.MAX_VALUE ); 结果为:In转载 2016-10-11 23:35:27 · 2353 阅读 · 0 评论 -
Java 中接口为什么可以调用 toString 方法,接口中根本就没有 toString 方法?
作者:蓝枫铭链接:https://www.zhihu.com/question/24113953/answer/27172633来源:知乎著作权归作者所有,转载请联系作者获得授权。感谢 @pansz 提供的官方链接,遗憾的是他的解释并不准确:原文:If an interface has no direct superinterfaces, then the inte转载 2016-10-11 16:48:46 · 2564 阅读 · 0 评论 -
HashMap
今天去面试了下,问了我有关hashmap的问题,深入的研究下:原理:https://coolshell.cn/articles/9606.html其中还有一个关于并发的问题 :https://coolshell.cn/articles/9606.html看了之后里面发现了一个链表倒置的算法,忽然就明白了mark下。个人理解hashmap的问题是只有在下次调用get时,且传入的值求h...转载 2018-09-08 00:57:32 · 228 阅读 · 0 评论