Java程序员常犯的几类错误

1.忽视异常

相信很多小伙伴在编程的过程中经常对异常置之不理。针对初学者和有经验的 Java 程序员,最佳实践仍是处理它们。异常抛出通常是带有目的性的,因此在大多数情况下需要记录引起异常的事件。不要小看这件事,如果必要的话,你可以重新抛出它,在一个对话框中将错误信息展示给用户或者将错误信息记录在日志中。至少,为了让其它开发者知晓前因后果,你应该解释为什么没有处理这个异常。

                               

Java程序员常犯的几类错误

 

2.ArrayList与LinkedList

这两个似乎很像,当我们不知道之间的区别ArrayList和LinkedList就经常使用ArrayList,因为它看起来很熟悉。但是,它们之间存在巨大的性能差异。LinkedList如果存在大量的添加/删除操作并且没有大量的随机访问操作,则应该首选。

3.在循环中删除列表中的元素

在讨论这个问题之前,先考虑以下代码的输出结果:

ArrayList<String> list = new ArrayList<String>(Arrays.asList("a","b","c","d"));

for(int i=0;i<list.size();i++){

list.remove(i);

}

以上代码的目的是想遍历删除list中所有元素,但是结果却没有成功。原因是忽略了一个关键的问题:当一个元素被删除时,列表的大小缩小并且下标也会随之变化,所以当你想要在一个循环中用下标删除多个元素的时候,它并不会正常的生效。

                                        

Java程序员常犯的几类错误

 

为什么呢? 迭代器(Iterator)是工作在一个独立的线程中,并且拥有一个 mutex 锁。 迭代器被创建之后会建立一个指向原来对象的单链索引表,当原来的对象数量发生变化时,这个索引表的内容不会同步改变,所以当索引指针往后移动的时候就找不到要迭代的对象,所以按照 fail-fast 原则 迭代器会马上抛出java.util.ConcurrentModificationException 异常。

正确的在遍历过程中删除元素的方法应该是使用Iterator:

ArrayList<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));

Iterator<String> iter = list.iterator();

while (iter.hasNext()) {

String s = iter.next();

if (s.equals("a")) {

iter.remove();

}

                                                                          

Java程序员常犯的几类错误

 

4. 访问级别

许多开发者经常使用public定义字段的访问级别,这样方便通过反射获取字段,但是这是设计非常不好。根据经验字段的访问级别设置的越低越好。public,default,protected,private 如果非必要,建议访问级别设置成private。

Java程序员常犯的几类错误

 

为了让学习变得轻松、高效,今天给大家免费分享一套Java入门教学资源。帮助大家在成为Java架构师的道路上披荆斩棘。需要入门的资料欢迎加入学习交流群:928505736

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503395.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jdk1.8 mysql_Centos 7配置JDK1.8+MySQL5.7+Tomcat 8 开发环境

工具腾讯云服务器(可通过公网ip访问)Xshell 6Xftp 61、Xshell 6 连接云服务器打开xshell很简单&#xff0c;直接上图配置好之后连接云服务器&#xff0c;之后就可以对云服务器进行操作了。2、配置JDK 1.8a、下载JDK1.8如果直接在云服务器的命令行中使用wget http://download.or…

做为一名java高级程序员,需要了解哪些岗位?

一、Java高级程序员 要想成为JAVA&#xff08;高级&#xff09;程序员也称Java高级工程师&#xff0c;肯定要学习JAVA。一般的程序员或许只需知道一些JAVA的语法结构就可以应付了。但要成为JAVA高级程序员&#xff0c;您要对JAVA做比较深入的研究。您应该多研究一下JDBC、IO包…

Java 程序员必读的五本书籍

如果你是一名程序员&#xff0c;想知道如何提高你对Java的了解或者成为更好的Java开发人员。在本文中&#xff0c;我将分享一些最好的Java书籍。这些书经受住了时间的考验&#xff0c;随着岁月的流逝变得越来越重要。不管你是学生还是职业者&#xff0c;你总有很多东西要学&…

使用sqlserver连接mysql服务_Sqlserver创建连接MySql的链接服务器

第一步&#xff1a;在MySql服务器上安装与系统对应的 MySql-Connector-ODBC安装过程中可能会报 缺失 msvcr100.dll的错误&#xff0c;这需要你根据系统到网上下载对应的这个dll文件。(当初遇到这个问题的时候&#xff0c;在网上试了很多的这种文件 最后才找到一个合适自己的)第…

什么人适合学习Java编程?编程好学吗?

什么人适合学习Java编程&#xff1f;编程好学吗&#xff1f;首先自己做个自我评估&#xff0c;包括能力、兴趣、逻辑思维、性格特点等等&#xff0c;结合这些特质判断自己是否适合学习Java。评估自己时&#xff0c;要尽量客观&#xff0c;追随内心&#xff0c;切勿轻易抬高或者…

not support mysql_MYSQL(解决方法):Client does not support authentication

mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法shell> mysqlClient does not support authentication protocol requestedby server; consider upgrading MySQL client官方的说法是MySQL 4.1 and up uses an authentication proto…

大神程序员都懂英文翻译,而你却因英语不行遭拒?

程序员中很多人都是在外企里面工作的。这样的话就会涉及到&#xff0c;跟外籍同事的沟通和协作。上下级之间的汇报工作。虽然我们的主要工作是开发软件。是技术类工作。跟计算机打交道比较多&#xff0c;但是沟通对技术来说&#xff0c;还是非常重要的。跟外籍同事沟通&#xf…

android找不到符号_快速搭建Android开发环境——Android Studio(附ADB找不到设备)...

由于毕设大概率最终要使用Android来实现&#xff0c;所以现在要开始学习一些Android开发基础了。学习一门技术&#xff0c;最先要解决的问题就是开发环境的问题。就如同两年前学java那样&#xff0c;在windows下配置环境总是一件不那么令人开心的事。Android也是一样&#xff0…

Java环境的正确配置你会了吗?

在很多新手入门学习Java的小伙伴都会面临到Java环境的配置&#xff0c;今天小编带大家来配置Java的环境配置&#xff0c;首先到官网下载Jdk:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 安装的话傻瓜式安装只需要下一步就可以&…

让初学者不迷茫的Java学习方法有很多?

相信各位小伙伴在学习过程中多少会遇到一些迷茫&#xff0c;学习是一个循序渐进的过程&#xff0c;最初的最基本的知识没有掌握&#xff0c;直接学习在这之上的更高层次的知识&#xff0c;最大的问题就是只能做到知其然&#xff0c;而不能做到知其所以然了。在之前小编也只是一…

mysql日期纬度表_mysql中生成时间维度表

mysql中生成时间维度表利用mysql常用日期函数生成时间维度表&#xff0c;效率最高&#xff0c;最简单&#xff0c;无需其他的一些工具支持。生成结果示例如下图&#xff1a;# time spanSET d0 "2012-01-01";SET d1 "2012-12-31";SET date date_sub(d0, …

Java程序员高效开发必备工具,其中有你的最爱吗?

对于Java编程开发&#xff0c;有两种不同的观点&#xff1a;一种认为Java是最简单功能最强大的编程语言之一&#xff0c;另一种则表示这种编程语言既难用又复杂。&#xff0c;每个工具都有其优点&#xff0c;学习这些具有可以帮助开发者改善代码质量&#xff0c;从而成为一个更…

mysql怎么实现生日字段前一个小时提醒_MySql学习笔记(二) 索引的设计和使用...

作为开发人员&#xff0c;数据库的索引是我们再熟悉不过的了。那么实话真的会了吗&#xff0c;在项目开发中随便定义一个int、varchar后边跟个primary key或者加个index就好了么&#xff1f;考虑到这些咋还真的需要看看专业的人都是怎么做的。在mysql中索引是提升性能的常用工具…

Java程序员需要掌握哪些技能才能通过大公司的面试

首先我们来谈一下程序员的阶段&#xff0c;在学校里的三年对于程序员来说是第一个门槛&#xff0c;这个阶段将会淘汰掉一批不适合写代码的人。这一阶段&#xff0c;我们走出校园&#xff0c;迈入社会&#xff0c;成为一名程序员&#xff0c;正式从书本上的内容迈向真正的企业级…

java编程有什么独特之处?

Java编程已经成为了一个坚实的平台&#xff0c;可以赶上甚至超过本地代码的水准。它能使开发者花最小的代价完成工作&#xff0c;同时还能使得开发者在一段时间之后&#xff0c;还能继续完成别人的代码并且明白其中的意思。当然&#xff0c;你也可以编写可读性差的代码&#xf…

初学Java学员,千万不要踩这几个坑

2019即将到来&#xff0c;我们的编程界的大佬不由得发表一波感慨&#xff0c;新的一年将会有哪些语言上榜&#xff0c;不过小编还是相信Java不会落榜的。今天我们来谈一下那写年学习Java踩的坑。 一、敲代码追求速度&#xff0c;没有正确率 相信看过很多大神打代码速度非常快…

JAVA程序员已成为最疯狂的加班行业,没有之一?

程序员界加班经常成为业界讨论的话题&#xff0c;夜幕降临&#xff0c;大楼里依然灯火通明时&#xff0c;那一刻&#xff0c;仿佛让我渐渐的忘记了时间&#xff0c;我知道我不是一个在加班&#xff0c;我不是一个人&#xff01;连续加班已成为常事&#xff0c;一点不夸张。 “…

layui table reload post请求_如何实现在Layui框架中完成父窗口刷新(更新)

最近有个项目使用Layui框架进行后端系统的界面搭建&#xff0c;其中Layui框架中的Layer组件在项目中会用得非常多。且有些功能会遇到子窗口完成数据的提交后&#xff0c;进行关闭同时会刷新父窗口的数据&#xff0c;所以此文章分享一下《如何实现在Layui框架中完成父窗的刷新功…

Java开发人员需要掌握数据库的知识点有哪些?

现在主流的Java开发人员一般都需要会主流数据库。开发人员需要对Mysql、Oracle、SqlServer这三个常用的熟悉了解。在数据量比较大或者请求数比较高的情况下&#xff0c;需要了解一些特定数据库针对性优化。SQL相关入门熟悉表、字段、记录、索引等概念。 熟悉SQL的约束&#xff…

Java到底能做什么事情呢?

相信很多小伙伴看到标题第一个出现在脑海里的想法是赚钱&#xff0c;难道你们只知道java薪资高&#xff1f;那么你太low,Java的应用领域很广&#xff0c;可以说是现在最普及的&#xff0c;遍布各行各业&#xff0c;可见其优势所在。 1、大数据领域 Hadoop以及其他大数据处理技…