final修饰的方法不允许子类去覆盖,而且有些情况该方法对子类是不可以访问的,这有点像private ,
Set集合底层是Map的实现,Map底层是数组
用Iterator遍历list和Set时,List在遍历倒数第二个元素时,可以删除任意其他的元素,而不报java.util.ConcurrentModificationException,例如
ArrayList<String> list = new ArrayList<String>();
list.add("111");
list.add("222");
list.add("333");
list.add("444");
for(Iterator<String> iterator = list.iterator();iterator.hasNext();){
String el = iterator.next();
System.out.println(el);
if(el.equals("333")) {
list.remove(list.get(0));
}
}
System.out.println(list.toString());
//输出的结果如下:
/*
111
222
333
[222, 333, 444]
*/
Set集合则是在遍历最后一个元素时可以任意删除其他元素。
字符串常量池中常量如果以后也没有用到(即没有引用变量去引用该常量),jvm也不会去回收,这也是内存的泄露
表达式类型的自动提升:
//'a'+7先转换为int类型,后程序自动将基本数据类型再转换为字符串,104hello
System.out.println('a'+7+"hello");
//helloa7
System.out.println("hello"+'a'+7);
复合赋值运算符的陷阱:
你们可能都遇到这样的问题
short s = 5;
s = s-2;
s -=2;
会报编译错误,s = s-2是正常的类型自动转换int类型,所以会报错,但s -=2不会,因为java中特殊的复合赋值运算符,它不仅完成了相应的操作,而且还隐藏了一个强制转换的过程 E1 op= E2(op可以是+、-、%、/等),它相当于E1 = (E1类型)(E1 op E2);
if--else if --,if要先处理小范围的
大部分时候,如果循环体只包含一条语句,那么就可以省略花括号,但如果循环体内只包含是一条局部变量的定义语句,那么依然不可以省略循环体的花括号。
分享到:
相关推荐
对Java语言本身深入理解,掌握面向对象的编程思想,了解常用的设计模式,这些都是基本功。同时,需要对Java生态中的各种框架和技术进行学习,如Spring、Hibernate等。此外,还要有良好的编码习惯,代码的可读性和可...
以下是对这位阿里四年工作经验的Java程序员从业心得的详细解读: 1. **Java基础的重要性**:无论在哪个阶段,Java基础知识都是面试中的重点。从String对象的理解到设计模式的应用,程序员需要不断深化对Java内存...
在学习和教学Java的过程中,作者发现了学习中存在的几个问题:仅阅读不实践、脱离工程实际、只注重原理而不落地操作、基本功不扎实等。作者通过自我反思,指出学编程需要的是实用性和落地能力,而不是仅仅停留在理论...
在编程的世界里,成为一名高手并非一朝一夕之功,而是需要不断学习、实践和积累经验的过程。"如何成为编程高手"这个主题涵盖了广泛的技能和知识领域,让我们一起深入探讨。 首先,掌握基础是关键。无论是Java、...
毕竟,扎实的基本功才是长期发展的基石。 ### 45. 在每次学习结束时总结所学知识 通过总结归纳,可以加深对所学内容的理解,并巩固记忆。 ### 46. 记录学习过程中的笔记和心得 养成记录笔记的习惯,不仅有助于...