1. if(username.equals(“zxx”)){}

  这样写的话,如果username是null, 则会报NullPointerException,所以先要判断username是否为null.

2.  int  x = 1;

return x==1?true:false;

不会报错,但特别啰嗦。如果要返回boolean, 那么可以直接return x==1, (x==1这个表达式本来就返回boolean)

3. 尽量少用增强for循环

 增强for循环语法:

    int[] arr = {1,2,3,4,5};

    for(int i : arr) { ......}

Collection c = new ArrayList();

  c.add(new String("aaa"));

......

for(Object o : c) {......}

相对于传统for循环,缺点:

不能方便的访问下标值,而且在遍历集合时只能使用Iterator的remove方法删除集合中的元素,用增强for循环就无法使用Iterator了,所以增强for循环只适用于简单的遍历。

4.  关闭一个缓冲区输出流之前应使用flush方法.

  缓冲区其实就是封装了一个数组,对数据进行临时缓冲,存满后再集中对数据进行操作,这也是提高流操作数据效率的原因,当缓冲区存满后会自动对数据进行操作,不刷新也可以,但是如果不存满就必须刷新了(flush)才能把数据刷到目的地,打个比方,默认缓冲区大小是8k,如果你是用缓冲区操作10k的数据,你使用flush方法那么数据不会有丢失,但是如果没有使用fulsh方法那么得到得数据只有8k,剩下的2k会丢失. 因为直接对流close的话,切断的是缓冲区和文件之间的通道(流),太粗暴了! 通道切断了,缓存区的数据自然无法写到文件。 由此可见,flush方法并不是对所有的OutputStream子类都起作用的,它只对那些使用缓冲区的OutputStream子类有效。当然,不带缓冲区的OutputStream调用flush也不会报错,但是根本没啥效果。

5. 实现Serializable接口的类强烈建议显示定义一个serialVersionUID,原因可以参见个人相关的随笔

6.ObjectInputStream和ObjectOutputStream类不会保存和读取对象中的transient和static类型的成员变量。

7. 为什么super(...)和this(...)不能在同一个构造函数中出现?

  因为在构造的时候只需要调用父类的super()作为初始化父类一次,如果super(...)和this(...)同时出现的话,那么就会出现初始化父类两次的不安全操作,因为当super(...)和this(...)同时出现的时候,在调用完了super()之后还会执行this(..),而this(...)中又会自动调用super(),这就造成了调用两次super()的结果(这是假设super(...)和this(...)同时出现时候,super(...)在this(...)前面,反过来出现也一样).

8.final关键字

final标记的类不能被继承

final标记的方法不能被重写

final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次,所以final标记的成员变量必须在声明的同时或在该类的构造方法中显示赋值,然后才能使用。

方法中定义的内部类只能访问该方法内的final类型的局部变量.

9. 含有抽象方法的类必须被定义成抽象类,抽象类的子类必须覆盖所有的抽象方法后才能被实例化,否则这个类还是个抽象类。

含有抽象方法的类一定是抽象类。抽象类中的方法不一定是抽象的(这也是和接口的一个区别,接口中所有的方法都是抽象的)。

10. 接口里的变量默认是public static final的,所以接口中的变量就是全局静态变量。

接口里的方法默认是public abstract的。

11. finally语句。finally语句即使在try代码块和catch代码块使用了return语句退出当前方法或break跳出某个循环,相关的finally代码块都要执行,finally代码块不能被执行的唯一情况是:在被保护的代码块中执行了System.exit(0).

12.一个方法被覆盖时,覆盖他的方法必须抛出相同的异常或者异常的子类,而不能抛出一个全新的异常

java代码注意点总结(持续更新)的更多相关文章

  1. 深入理解Java虚拟机--个人总结(持续更新)

    深入理解Java虚拟机--个人总结(持续更新) 每天按照书本学一点,会把自己的总结思考写下来,形成输出,持续更新,立帖为证 -- 2020年7月7日 开始第一次学习 -- 2020年7月8日 今天在百 ...

  2. java常用代码段整理(持续更新)

    FileWriter指定编码格式 FileWriter 默认是用(ISO-8859-1 or US-ASCII)西方编码的,总之不是UTF-8的,而FileWriter类有getEncoding方法, ...

  3. JAVA常见异常集锦(持续更新)

    No1:Nested in org.springframework.beans.factory.parsing.BeanDefinitionParsingException 2013-07-02 10 ...

  4. Java面试题集锦(持续更新)

    1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: -抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这 ...

  5. java基础知识汇总(持续更新中....)

    1.java四大特性:抽象.继承.封装,多态 构造函数: http://blog.csdn.net/qq_33642117/article/details/51909346 2.java数据基本类型: ...

  6. 面试必备:常考Java基础知识总结(持续更新)

    面试必备:常考Java基础知识总结(持续更新) 本文的Java方面基础知识是我在面试过程中的积累和总结. Java基本数据类型.所占空间大小及对应包装类 基本类型 大小 包装类 boolean - B ...

  7. 【笔记】Java微服务之路(持续更新)

    微服务架构的说明: 微服务的架构风格是将一个单体的应用程序开发拆解为一组"小"的服务,这里的"小"是以业务边界 来区分的,而不是根据代码的多少区分.每个服务都运 ...

  8. Java 集合的理解(持续更新......)

    一.集合的由来 通常,我们的程序需要根据程序运行时才知道创建多少个对象.但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型.为了满足这些常规的编程需要,我们要 ...

  9. Java 关键字详解(持续更新中)

    abstract:     表明类或者成员方法具有抽象熟悉.       修饰类,抽象类:         抽象类不能被实例化:         抽象类中可以有属性.方法.构造,都是用来给子类继承的: ...

随机推荐

  1. Java初学者作业——编写JAVA程序,根据用户输入课程名称,输出对应课程的简介,各门课程的简介见表

    返回本章节 返回作业目录 需求说明: 编写JAVA程序,根据用户输入课程名称,输出对应课程的简介,各门课程的简介见表 课程名称 课程简介 JAVA课程 JAVA语言是目前最流行的编写语言,在本课程中将 ...

  2. Django admin实现TextField字段changelist页面换行、空格正常显示

    问题背景 在Django后台的使用admin view绑定model后,可以很方便的通过网页对底层的数据表进行增删查改操作. 在实际工作中有一些数据字段会存储了json或者其他包含换行符.空格符的文本 ...

  3. dart系列之:dart代码最佳实践

    目录 简介 命名规则 import中的顺序 格式化 总结 简介 每种语言都有自己的代码风格,这种代码风格是跟语言特性息息相关的.如果在编码的过程中遵循这种统一的编码规则,会给我们的业务带来非常多的便利 ...

  4. Python基础之pytest参数化

    上篇博文介绍过,pytest是目前比较成熟功能齐全的测试框架,使用率肯定也不断攀升.在实际 工作中,许多测试用例都是类似的重复,一个个写最后代码会显得很冗余.这里,我们来了解一下 @pytest.ma ...

  5. linux清理缓存cache

    Linux服务器有自己先进的内存管理机制,有时候会发现我们系统的buff/cache内存占用会越来越高,操作系统也有卡顿的情况,遇到这种情况,不妨试试下面的方法. 步骤一:我们先使用free -m查看 ...

  6. NIO【同步非阻塞io模型】关于 NIO socket 的详细总结【Java客户端+Java服务端 + 业务层】【可以客户端间发消息】

    1.前言 以前使用 websocket来实现双向通信,如今深入了解了 NIO 同步非阻塞io模型 , 优势是 处理效率很高,吞吐量巨大,能很快处理大文件,不仅可以 做 文件io操作, 还可以做sock ...

  7. 本地Java大数据环境基础配置(Maven)

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6812623309138559500/ 创建项目 准备pom.xml文件配置(附在文档最后) 在下载jar过程中极其 ...

  8. 服务器表单字符串转化Vue表单挂在到对应DOM节点

    今天在项目开发中,遇到从后端返回的vue文件(包含template,js,css)的文件,试过用v-html解析文件,渲染到页面,但是无法渲染,后来去查了一堆资料,自己写了一个全局方法来解析这类文件 ...

  9. java实现excel表格导入数据库表

    导入excel就是一个上传excel文件,然后获取excel文件数据,然后处理数据并插入到数据库的过程 一.上传excel 前端jsp页面,我的是index.jsp 在页面中我自己加入了一个下载上传文 ...

  10. ArrayList实现类

    特点 数组结构实现,查询快,增删慢 运行效率高,线程不安全 可重复 常用方法 Modifier and Type Method and Description boolean add(E e) 将指定 ...