1.小心使用Boxing
自动装箱和拆箱是所谓的编译器蜜糖(Compiler Sugur)
如Integer i=100;
<=>Integer i=new Integer(100);
但是下面程序是可以通过编译的
Integer i=null;
int j=i;
编译时期是合法的,但运行时就会出错,因为这种写法相当于:
Integer i=null;
int j=i.intValue();
由于i没有参考至任何实体,所以就不可能操作intValue()方法,出现NullPointerException
2.数组元素初始化
数组类型初始值 数组类型初始值
byte 0 float o.of
short 0 double 0.0d
int 0 char \u0000
long 0L boolean false
3.Sring Pool
在Java执行时会维护一个String池,对于一些可以共享的字符串对象,会先在String池中查找是否有相同的String内容(字符相同),如果有直接返回,而不是直接创造一个新的String对象,以减少内存的耗用在程序中如下声明,实际上指向同一个字符串对象:
String str1="flyweight";
String str2="flyweight";
System.out.println(str1==str2);
intern()方法会先检查String池中是否有字符相同的字符串对象,如果有就返回,而不需要创建。
4.取得当前时间
long beginTime=System.currentTimeMillis();
//被测试的语句
long endTime=System.currentTimeMillis();
System.out.println("执行时间:"+(endTime-beginTime));
5.Java的静态方法不允许使用非静态成员
由于静态成员属于类而非对象,所以当调用静态方法时,并不会传入对象的参考,即静态方法中不会有this参考名称。由于没有this名称,所以在Java的静态方法不允许使用非静态成员。
静态区的代码首先执行
static{
//类加载时执行
}
6.编译器处理重载方法、装箱问题和不定长参数时,会依据以下顺序来寻找合适的方法
寻找在还没装箱单做前可以符合参数个数和类型的方法
尝试装箱动作后可以符合参数个数和类型的方法
尝试设有不定长参数并符合的方法
编译器找不到合适的方法,报告编译错误
7.重写方法时要注意的是,可以增大父类中的方法权限,但不可以缩小权限.
8.Object的toString()的方法默认返回类名称和16进制的编码
即getClass().getName()+'@'+Integer.toHexString(hashCode())
在重写toString()方法时,建议重写hashCode()方法
9.匿名内嵌类(annonymous inner class)
public void someMethod(){
finna int x=10;//声明为finnal
Object obj=
new Object(){
public String toString(){
return String.valueOf(x);
}
};
System.out.println(obj);
}
区域辩论x并不是真正被拿来在内嵌类中使用,x会被匿名类复制作为数据成员来使用。由于真正在匿名类中的是x复制品,即使在内嵌类中被修改,也不会影响真正的区域变量x,事实上也通不过编译器的检查。
10.使用正则表达式(Regular Express)
. 符合任一字符
\d 符合0~9任一个数字字符
\D 符合0~9以外的字符
\s 符合\t,\n,\x0b,\f,\r等空格符
\w 符合a~z,A~Z,0~9等字符
\W 符合a~z,A~Z,0~9等之外的字符
字符类范例
[abc] 符合a b c
[^abc] 符合abc之外的字符
[a-zA-Z]符合a~z或是A~Z的字符
[a-d[m-p]] 符合a-d或是m-p的字符=[a-dm-p]
[a-z&&[def]]符合a-z且是d或e或f,结果是d或e或f
[a-z&&[^bc]]符合a-z且不是b或c
[a-z&&[^m-p]]符合a-z且不是m-p
贪婪量词范例(Greedy Quantifies)
X? X一次或没有
X* X零次或多次
X+ X一次或多次
X{n} X出现n次
X{n,} X至少出现n次
X{n,m} X至少n次不超过m次
11.框架:
在Design Patterns Elements of Reusable Object-Oriented Software书中对“框架”做出的解释是:框架是由一组互相合作的类组成,它们为特定类型的软件开发提供了一个可以重复使用的设计。
简单的说,你可以直接使用框架所提供的工具类,并在遵守框架制定的标准下,快速地开发你所需要的软件,并避免软件开发过程中所可能发生的重大错误。
所谓“微架构”,就是搭建应用程序和系统的积木块。与列入目录的那些单独模式相比,这个概念是一种更高层面的抽象,它常常表现为一组相互关联的模式组合,用于解决在应用架构中经常重现的一些共通问题。
我们乐于把“微架构”当作一种由相互关联的模式组成的网络,由此形成一种现成的解决方案,用于解决一个粒度更大的问题,比如子系统的设计。
分享到:
相关推荐
在“大学生寒假读书笔记2020”中,我们看到了一位大学生在教育机构中兼职家教的生动经历,这段经历让他亲身体验了教师的角色,并在此过程中提升了个人素质和社会技能。 社会实践活动对于大学生的全面发展具有不可...
《白领—美国的中产阶级》读书笔记资料.pdf 一、作者及本书简介 《白领—美国的中产阶级》的作者 Wright Mills 是一位美国社会学家,生于1916年,卒于1962年。他曾在德克萨斯大学和威斯康星大学学习,获得博士学位...
人生的道路上,每一个选择都至关重要,尤其在我们年轻的时候。路遥的《人生》深刻地...在大学期间阅读这样的作品,不仅可以增进文学素养,更能启发我们关于成长、责任和价值观的深刻思考,为未来的人生道路做好准备。
2、内容主要包括“2010-2018年的818真题答案(真题试卷 只有部分年份有 答案涵盖 10-18年)、信号系统分专题整理笔记、教材例题推荐、数电部分专题整理笔记 3、答案是手写扫描版 字迹工整清楚 不影响阅读 (实在介意...
接下来,我将根据自身在大学期间的读书体会,阐述读书对于个人成长的重要性,以及如何通过阅读实现自我提升和修养。 首先,大学读书是获取知识的主要途径之一。在大学里,我们不仅要学习专业的理论知识,还要通过...
本学习笔记是作者在大学期间深入学习Mybatis后的整理,旨在帮助初学者快速入门并掌握其核心概念与功能。 笔记共分为11个章节,涵盖Mybatis的基础到高级应用,以下是主要知识点的详细讲解: 1. **Mybatis简介**:...
Spark是一个高效的数据处理框架,它由加州大学伯克利分校的AMP实验室研发。该框架支持多种编程语言(包括Java、Scala、Python和R等),使开发者可以根据自身偏好选择合适的语言进行开发。Spark在设计上充分利用了...
写读书笔记和读后感,作为一种输出思维的方式,更是可以促进思考的深入,并且为我们以后的对比、综合和分析工作提供重要的依据。 其次,阅读能够开阔我们的视野,让我们能够接触到不同的文化、知识和思想。在大学...
通过有目标、有步骤的规划,我们可以在大学期间全面发展个人能力,为未来的职业生涯做好准备。大学不只是获取知识的地方,更是塑造个人、锻炼能力的重要阶段。通过个人计划,我们可以更好地实现个人成长,同时为校园...
在大学期间,个人学习规划是至关重要的,因为它可以帮助我们有效地管理时间,提高学习效率,并确保我们在学术和个人成长方面都能取得显著的进步。以下是一份大学个人学习规划的详细解析: 首先,认识到大学并不是...
3. **毕设**:毕业设计是计算机专业学生在大学期间的重要实践环节,它要求学生独立完成一个完整的项目,从需求分析到系统设计,再到编程实现和测试。复习笔记中的毕设相关资料可能包括项目提案模板、设计文档样本、...
针对中国传媒大学广播电视学考研参考书的阅读方法,我们可以采用以下几种策略: 1. **目录法**:通读参考书的目录可以帮助我们快速把握书籍的知识结构和体系,从而建立初步的知识框架。通过目录,考生能够对每个...
总体而言,大学英语四级考试大纲通过全面而具体的要求,为大学英语教学提供了一个清晰的方向,确保学生在大学期间能够得到全面的英语能力培养。这种标准化的评估体系,不仅有助于学生明确学习目标,也使得教师在教学...
4. **有目标的阅读**:阅读时要注重寻找重点、新观点和新材料,做读书笔记以巩固知识,同时培养批判性思维。 5. **自我监督**:定期反思和评价自己的学习过程,识别优点和不足,以改进学习策略。 此外,个人行为...
- **1975年Bell实验室允许大学使用Unix**:这一举措推动了Unix在教育领域的广泛应用,尽管其商业应用受到限制。 ##### 2、Linux的诞生 - **人物Linus**:Linus Torvalds,被誉为Linux之父。他在荷兰读书期间对Unix...
【毕业自我鉴定】是每一位应届毕业生都需要完成的重要任务,它不仅是对自己大学期间学习、生活、思想成长的总结,也是向未来雇主展示个人能力和素质的一种方式。以下是对这份800字自我鉴定的主要内容分析: 首先,...
这篇笔记库主要涵盖了我在大学期间对HTML(HyperText Markup Language)的深入学习与实践。HTML作为网页设计的基础,是每一个前端开发者必须掌握的重要语言。通过这个笔记库,你将能够了解到从HTML的基本结构到高级...
在这篇《大学学习生活总结》中,我们将深入了解作者在大学期间的学习生活体验,从而提炼出有助于个人全面发展的核心要素。 在学习领域,作者经历了从大一到大二的转变,面临了更多专业课程的挑战,如解剖学和营养学...
自主学习能力不仅关乎大学期间的学习成绩,更是未来社会生活和个人发展的基石。 自主学习的核心在于主动承担责任,意味着学生要像一个舵手一样,掌握自己的学习方向和进度。大学课程内容广泛而深入,覆盖的知识面和...