java高质量代码片段 java优质代码

如何编写高质量的代码1. 打好基础
写出高质量代码,并不是搭建空中楼阁,需要有一定java高质量代码片段的基础 , 这里我重点强调与代码质量密切相关的几点:
掌握好开发语言 , 比如做Android就必须对Java足够熟悉,《Effective Java》一书就是教授大家如何更好得掌握Java, 写出高质量Java代码 。
熟悉开发平台, 不同的开发平台,有不同的API, 有不同的工作原理,同样是Java代码 , 在PC上写与Android上写很多地方不一样,要去熟悉Android编程的一些特性,iOS编程的一些特性 , 了解清楚这些,才能写出更加地道的代码 , 充分发挥各自平台的优势 。
基础的数据结构与算法,掌握好这些在解决一些特定问题时,可以以更加优雅有效的方式处理 。
基础的设计原则,无需完全掌握23种经典设计模式 , 只需要了解一些常用的设计原则即可,甚至你也可以只了解什么是低耦合,并在你的代码中坚持实践,也能写出很不错的代码 。
2. 代码标准
代码标准在团队合作中尤为重要,谁也不希望一个项目中代码风格各异 , 看得让人糟心,即便是个人开发者,现在也需要跟各种开源项目打交道 。标准怎么定是一个老生常谈的话题,我个人职业生涯中经历过很多次的代码标准讨论会议,C, C#, Java等等,大家有时会坚持自己的习惯不肯退让 。可现如今时代不一样了,Google等大厂已经为我们制定好了各种标准,不用争了 , 就用这些业界标准吧 。
3. 想好再写
除非你很清楚你要怎么做 , 否则我不建议边做边想 。
你真的搞清楚你要解决的问题是什么了吗?你的方案是否能有效?有没有更优雅简单的方案?准备怎么设计它,必要的情况下 , 需要有设计文档,复杂一些的设计需要有同行评审,写代码其实是很简单的事情,前提是你得先想清楚 。
4. 代码重构
重构对于代码质量的重要性不言而喻 , 反正我是很难一次把代码写得让自己满意、无可挑剔,《重构》这本书作为业内经典也理应人人必读,也有其java高质量代码片段他类似的教授重构技巧的书,有些也非常不错,遗憾的是我发现很多工作多年的同学甚至都没有了解过重构的概念 。
5. 技术债务
知乎上最近有个热门问题《为什么有些大公司技术弱爆了?》,其实里面提到的很多归根结底都是技术债务问题,这在一些大公司尤为常见 。技术债务话题太大,但就代码质量而言,我只想提一下不要因为这些债是前人留下的你就不去管,现实是没有多少机会让你从一个清爽清新的项目开始做起,你不得不去面对这些,你也没法完全不跟这些所谓的烂代码打交道 。
因此我建议各位:当你负责一个小模块时,除了把它做好之外,也要顺便将与之纠缠在一起的技术债务还掉 , 因为这些债务最终将是整个团队来共同承担 , 任何一个人都别想独善其身,如果你还对高质量代码有追求的话 。
作为团队的技术负责人,也要顶住压力,鼓励大家勇于做出尝试,引导大家不断改进代码质量,不要总是畏手畏脚,停滞不前,真要背锅也得上 , 要有担当 。
6. 代码审查
我曾经听过一些较高级别的技术分享,竟然还不时听到一些呼吁大家要做代码审查的主题,我以为在这个级别的技术会议上,不应再讨论代码审查有什么好,为什么要做代码审查之类的问题 。同时我接触过相当多所谓国内一线互联网公司 , 竟有许多是不做代码审查的,这一度让我颇为意外 。
这里也不想多谈如何做好代码审查,只是就代码质量这点,不客气地说:没有过代码审查经历的同学,往往很难写出高质量的代码 , 尤其是在各种追求速度的糙快猛创业公司 。
7. 静态检查
很多代码上的问题,都可以通过一些工具来找到,某些场景下,它比人要靠谱得多,至少不会出现某些细节上的遗漏,同时也能有效帮助大家减少代码审查的工作量 。
Android开发中有Lint, Find bugs, PMD等优秀静态检查工具可用 , 通过改进这些工具找出的问题,就能对语法的细节,规范,编程的技巧有更多直观了解 。
建议最好与持续集成(CI),代码审查环境配套使用, 每次提交的代码都能自动验证是否通过了工具的代码检查,通过才允许提交 。
8. 单元测试
Android单元测试,一直备受争议,主要还是原生的测试框架不够方便,每跑一次用例需要在模拟器或者真机上运行,效率太低 , 也不方便在CI环境下自动构建单元测试,好在有Robolectric,能帮我们解决部分问题 。
单元测试的一个非常显著的优点是 , 当你需要修改大量代码时,尽管放心修改,只需要保证单元测试用例通过即可 , 无需瞻前顾后 。
9. 充分自测
有一种说法:程序员最害怕的是java高质量代码片段他自己写的代码,尤其是准备在众人面前show自己的工作成果时 , 因此在写完代码后,需要至少跑一遍基本的场景,一些简单的异常流 。在把你的工作成果提交给测试或用户前,充分自测是基本的职业素养,不要总想着让测试帮你找问题,随便用几下就Crash的东西,你好意思拿给别人吗?
10. 善用开源
并非开源的东西 , 质量就高 , 但至少关注度较高,使用人数较多,口碑较好的开源项目,质量是有一定保证的,这其中的道理很简单 。即便存在一些问题 , 也可以通过提交反馈 , 不断改进 。最重要的是,你自己花时间造的轮子,需要很多精力维护,而充分利用开源项目 , 能帮助你节省很多时间,把精力专注在最需要你关心的问题上 。
北大青鸟设计培训:学Java怎么写出高质量的代码?学一门编程语言是进入IT行业的法宝,很多人在明确了自己的兴趣 , 明确了自己未来想从事的领域 , 明确了自己未来想成为一个什么样的程序员后,选择了学Java 。
不管学哪门编程语言,一定是要学会敲代码的,这是你不可逃避的 。
学Java , 怎么写出高质量的Java代码?java课程认为这就是你得高度集中精力关心的问题 。
怎么写出高质量的Java代码?1、坚持没有谁能够随随便便就成功,也没有谁能够随随便便敲一手高质量的Java代码,就算你现在看着别人敲代码怎么那么轻松 , 他们的轻松来源于坚持多次的练习 , 你要是想让自己的Java代码变得高质量,那么就离不开你长久的坚持,只有投入足够多的时间,做出足够的练习,你才能够获得质的飞跃 。
2.专业Java专业知识是基本,好比盖楼,地基不稳,怎么也盖不出参天大楼 。
Java代码的敲写,很多的时候 , 也是一样的,你连最基础的Java理论知识都没有掌握好,然后就想跑在其他人的前面 , 敲出高质量的Java代码,那么简直就是做梦 。
起初,Java专业知识学起来是比较枯燥的,但是你必须要好好的去研究跟掌握 。
3.模仿你是怎么开始进入Java代码的敲写的,很多朋友回想一下,你是不是从模仿开始的,仿照其他人已经写好的代码跟着写一遍,写两遍 , 甚至是写三遍 。
模仿很重要,同时思考也很重要,熟练来源于练习,做好和作对源于不断的实践,你要想敲出高质量的Java代码,那么你一定得好好研究怎么样模仿的效果最好 。
怎样编写高质量的Java代码如何编写高质量代码 , 从而提升系统性能 。想必是很多程序员都非常注意的地方,最近总结了一些要点,特此记录在案 。所谓代码高可读性和高可维护性 , 其实就是应该有着规范的Java程序设计风格,在开发程序过程中 , 从近期目标看是应该着眼于功能实现 , 但是只能解一时之渴,而不思长远之计,确不可取 , 一个杂乱无序的代码让人看后有一种不解其意,心绪烦乱的感觉 。所以,作为一名合格的程序员,一定要确定一个观点就是你编写出来的代码不只是给你一个人看的,还是给别人看的 , 所以在开发过程中文件注释头 , java源文件编排格式,方法体的具体业务含义的注释都是必须的 。如程序注释就分为块注释与行注释。例如块注释为
/**
* @param
@return
*/
行注释
/****/或者 //
再者就是方法的命名也需要多加斟酌,一个业务方法,如果取最能体现体现该业务的名字 , 这样读者几乎不需要看代码便可以知道该方法具体用途 。高质量的代码其实很多时候都在一些小细节中体现,对于每个程序员来说一个for循环都会写,可是却有很多人没有能在代码中体现出高效性来,在这里我用简单的一个例子来说明:一个ArrayList需要遍历 。一般人会写成for(int i=0;ilist.size();i) 这有问题吗?没有问题,能够完成程序员的意图的功能 。
可是它高效吗?你有注意到这点吗?其实问题就出现在list.size()方法,这个方法是计算一个list的大?。?本身它不会存在任何问题,可是将它放在了一个for()循环中的话 , 就很有问题了,因为如果一个N次的for循环,这个方法就需要被执行N次,这样的代码就造成计算机花很多的时间去做没有意义的事情,而本来这个list.size()方法只需要计算一次的就可以了,所以我们把计算list大小的方法放在for循环外面去定义的话,效率就可以得到提高
如: int size = list.size();
for(int i=0;isize;i)
关于For循环还有一个要注意的地方,就是在for循环里面去New一个新对象 。如:
for(int i=0;i10;i){
A a = new A();
}
是不是怎么看都不会有问题,是的在语法上 。或者是执行业务处理逻辑的时候,它都是没有任何问题的 , 可是这是从语言级别去看待问题,没有深入到它的实现机制上去看待问题 。
在介绍这个问题的之前我想先简单说下关于java内存的机制:java是如何在内存中保存对象,我们回到A a=new A()在内存中是怎么分配这个问题来,
首先在栈中开辟一段空间存放引用a,然后在堆中开辟一段空间存放新建的A对象,同时引用a指向堆中新建得A对象,a所指代的对象地址为A在堆中地址 。根据javaGC机制,只有对象已经没有引用指向它的时候,才有可能被GC给回收,所以基于这种机制的话 , 上述的一个For循环就会存在很大的效率问题了,如果循环有1000次,在内存中栈会有1000个引用,而堆中也会有1000个新生成的对象 , 同时1000个引用会相应指向1000个新生成的对象,即使这个for循环结束,也不会有任何改变 。但是实际上1000个引用的生成完全是没有必要的,如果有着编写高性能代码的想法的话:像这样的for循环完全可以这样写:
A a = null;
for(int i=0;i1000;i){
a = new A();
...
}
这样的代码在内存中便只会在栈中生成一个指向,每当一个for循环结束后,这个指向会指向下一个新生成的对象,前面生成的对象就会失去指向,这样GC就有可能更加快速的回收这些已经失去功能的对象 。在java中其实new 一个对象是非常耗费时间的,特别是重量级对象,所以每次在new 对象的时候一定需要考虑清楚是不是非的生成一个对象才能完成我的业务需求呢?总之能够根据实际情况,然后举一反三的话,我相信大家编写出来的代码就会更加高效了 。
其次是针对同步的慎重考虑 , 因为我们一旦用了synchronized这个关键字后,就很可能丧失了并行的功效,所以在开发的过程中需要注意到线程是不是会对共有的资源进行处理,然后在慎重选择Synchronized 关键字,其实大家可以考虑用ThreadLocal这个类,它的优点是既保证同步的情况下仍然能保证并行,缺点是会占用更多的空间去换取换取时间 。
最后,便是在j2ee开发过程中对数据库操作的优化,在这里我只针对代码级别的优化,关于数据库级别的我不涉及 。大家编写SQL的时候会不会注意到一些原则,在这里我将罗列一些需要注意的要点 。(总结肯定不会很全,我希望如果有大虾能给予更多的经验指导,在下将会感激万分 。)
(1)在搜索子句的列名边要避免函数、算术操作符和其它的表达式,除非建立基于函数的索引
(2)使用复合索引的第一个列名
(3)SELECT子句中避免使用 ‘*’
(4)如果可能尽量多用"Commit"
(5)避免在索引列上使用IS null和Is not null
(6)用Union -all替换Union(如果可能的话)
(7)Oracel采用自下而上的顺序解析WHERE子句,可以过滤掉最大数量记录的条件写在WHERE子句的末尾
(8)between谓词可以转化为=and=子句,比如:price between 10 and 20
可以转化为 price= 10 and =20
(9)like子句中匹配值的第一个字符是常量,也可以进行转换,例如:
like “sm%”可以转换成 =“sm” and “sn”
(10)在子查询,exists和in要比not exists和not in执行得快,因为对于exists和in , 优化器只要找到一条记录就可以返回TRUE,而对于not exists和not in则必须检查所有的值 。
以上10条总结如果在编写sql的时候能注意到的话,将会在一定程度上提高java跟数据交互的性能 。
那么除了在SQL上下功夫来提高性能之外,编写合适的事务处理也将带来一些性能提高 。我们都知道事务具有:原子性 , 隔离性,一致性,持久性,所以在使用事务的时候肯定是牺牲并发性能为代价的 。特别是一个涉及update的事务处理的时候 , 数据库会在表上加上排他锁,而一个数据资源只要被一个事务放置了排他锁,其他事务将不能放上排他锁,一定要一直等到事务结束后才释放 。所以在这种情况下的,并发性就会被抹杀掉了 。我们不能改变这种加锁的机制,但是我们可以用另外一种方式来达到一定程度的性能提升 , 那就是根据实际情况将一个大事务分解成小事务来处理 。简而言之就是减低事务放置排他锁和释放排他锁的时间间隔,这样可以让其他的事务能更快的访问到数据资源 。而关于大事务分解一定要小心使用,如果使用不恰当的话很可能会产生意想不到的数据不一致错误 。
求一个50行左右的JAVA代码,最好每行带注释,谢谢啦/*这个相当详细java高质量代码片段了.
程序也不算太难.而且给老师看java高质量代码片段的时候效果比较好.因为有图形化界面,又实现一个比较实用java高质量代码片段的功能.老师会比较高兴的.
建立一个文件名为Change.java就可以编译了*/
/*
* 这个程序实现输入身高算出标准体重,输入体重,算出身高的功能
*/
import java.awt.*; //导入相关类包,这才样使用相应awt图形界面的类
import java.awt.event.*;//同上
public class Change extends Frame { //定义一个类Change, 父类是Frame(图形界面的)
Button b = new Button("互查"); //创建一个按钮的对象b,显示为"互查"
Label l1 = new Label("身高(cm)");//创建一个lable.显示身高
Label l2 = new Label("体重(kg)");//创建一个lable 显示体重
double heigth, weigth; //定义变量
double x, y; //定义变量
TextField tf1 = new TextField(null, 10);//添加Text框
TextField tf2 = new TextField(null, 10);//添加Text框
public Change() {//类的构造函数,完成初始化
super("互查表");//创建窗口,标题为互查表
setLayout(new FlowLayout(FlowLayout.LEFT));//设置布局
add(l1);//把lable 身高放到window里
add(tf1);//把Text 框 放到窗口上
add(l2); //把lable 体重放到window里
add(tf2);//Test放到窗口里
add(b);//把button放到窗口上
pack();//自动放到窗口里排列上边的组件
setVisible(true);//可以让用户看到窗口
addWindowListener(new WindowAdapter() {//如果按 X, 关闭窗口
【java高质量代码片段 java优质代码】public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
b.addActionListener(new ButtonListener());//添加button监听函数
}
class ButtonListener implements ActionListener {//实现click button时功能操作
public void actionPerformed(ActionEvent e) {//当click调用
if (tf1.getText()!=null) {//检查tf1 test 是否为空
try {//取异常
x = Double.parseDouble(tf1.getText());//字符转为double型
weigth = (x - 100) * 0.9;//算重量
tf2.setText(""weigth);//显示重量
} catch (NumberFormatException ex) {
tf1.setText("");//如果输入不是数字,设为空
}
}
if (tf1.getText().equals("")==true){//tf1是否为空
y = Double.parseDouble(tf2.getText());//把tf2里的文本转为double 型 的
heigth = y / 0.9100;//算身高根据重量
tf1.setText(""heigth);}//显示身高
}
}
public static void main(String[] args) {//主函数,程序入口
new Change(); //建立类Change的对象,并调用java高质量代码片段他的构造函数Change().显示窗口
}
}
java学习:如何写出高质量的代码,成功进入BAT很多问题归根结底都是技术债务,这在一些大公司尤为常见 。技术债务话题太大,但就代码质量而言,我只想提一下不要因为这些债是前人留下的你就不去管 。怎么写出高质量的代码呢?
1、打好技术基础
写出高质量代码 , 并不是搭建空中楼阁 , 需要有一定的基础 。这里我重点强调与代码质量密切相关的几点:
1)掌握好开发语言
比如做 Android 就必须对 Java 足够熟悉,才能够写出高质量 Java 代码 。
2)熟悉开发平台
不同的开发平台,有不同的 API,有不同的工作原理,同样是 Java 代码 , 在 PC 上写与 Android 上写很多地方不一样 。
3)要去熟悉 Android 编程的一些特性
iOS 编程的一些特性,了解清楚这些 , 才能写出更加地道的代码,充分发挥各自平台的优势 。
4)基础的数据结构与算法
掌握好这些在解决一些特定问题时,可以以更加优雅有效的方式处理 。
5)基础的设计原则
无需完全掌握 23 种经典设计模式 , 只需要了解一些常用的设计原则即可,甚至你也可以只了解什么是低耦合 , 并在你的代码中坚持实践,也能写出很不错的代码 。
2、代码标准
代码标准在团队合作中尤为重要 , 谁也不希望一个项目中代码风格各异,看得让人糟心,即便是个人开发者,现在也需要跟各种开源项目打交道 。
标准怎么定是一个老生常谈的话题 , 我经历过很多次的代码标准讨论会议,C,C#,Java 等等 , 大家有时会坚持自己的习惯不肯退让 。可现如今时代不一样了,Google 等大厂已经为我们制定好了各种标准,就用这些业界标准吧 。
3、想好再写
除非你很清楚你要怎么做,否则我不建议边做边想 。你真的搞清楚你要解决的问题是什么了吗?你的方案是否能有效?有没有更优雅简单的方案?
准备怎么设计它,必要的情况下,需要有设计文档,复杂一些的设计需要有同行评审,写代码其实是很简单的事情,前提是你得先想清楚 。
4、代码重构
重构对于代码质量的重要性不言而喻,很难一次把代码写得让自己满意、无可挑剔 。
5、技术债务
很多问题归根结底都是技术债务,这在一些大公司尤为常见 。技术债务话题太大 , 但就代码质量而言 , 我只想提一下不要因为这些债是前人留下的你就不去管 。
现实是没有多少机会让你从一个清爽清新的项目开始做起 , 你不得不去面对这些,你也没法完全不跟这些所谓的烂代码打交道 。
当你负责一个小模块时,除了把它做好之外,也要顺便将与之纠缠在一起的技术债务还掉,因为这些债务最终将是整个团队来共同承担,任何一个人都别想独善其身,如果你还对高质量代码有追求的话 。
作为团队的技术负责人,也要顶住压力,鼓励大家勇于做出尝试 , 引导大家不断改进代码质量,不要总是畏手畏脚 , 停滞不前,真要背锅也得上 , 要有担当 。
6、代码审查
我曾经听过一些较高级别的技术分享 , 竟然还不时听到一些呼吁大家要做代码审查的主题 。
我以为在这个级别的技术会议上,不应再讨论代码审查有什么好 , 为什么要做代码审查之类的问题 。同时我接触过相当多所谓国内一线互联网公司,竟有许多是不做代码审查的,这一度让我颇为意外 。
这里也不想多谈如何做好代码审查,只是就代码质量这点,不客气地说:没有过代码审查的经历往往很难写出高质量的代码,尤其是在各种追求速度的糙快猛创业公司 。
7、静态检查
很多代码上的问题,都可以通过一些工具来找到,某些场景下,它比人要靠谱得多,至少不会出现某些细节上的遗漏 , 同时也能有效帮助大家减少代码审查的工作量 。
Android 开发中有 Lint,Find bugs , PMD 等优秀静态检查工具可用,通过改进这些工具找出的问题,就能对语法的细节,规范,编程的技巧有更多直观了解 。
建议最好与持续集成(CI) , 代码审查环境配套使用,每次提交的代码都能自动验证是否通过了工具的代码检查 , 通过才允许提交 。
8、单元测试
Android 单元测试,一直备受争议,主要还是原生的测试框架不够方便,每跑一次用例需要在模拟器或者真机上运行,效率太低 , 也不方便在 CI 环境下自动构建单元测试,好在有 Robolectric , 能帮我们解决部分问题 。
单元测试的一个非常显著的优点是,当你需要修改大量代码时,尽管放心修改,只需要保证单元测试用例通过即可 , 无需瞻前顾后 。
9、充分自测
有一种说法:程序员最害怕的是他自己写的代码,尤其是准备在众人面前 show 自己的工作成果时,因此在写完代码后,需要至少跑一遍基本的场景,一些简单的异常流 。
在把你的工作成果提交给测试或用户前,充分自测是基本的职业素养,不要总想着让测试帮你找问题,随便用几下就 Crash 的东西 , 你好意思拿给别人吗?
10、善用开源
并非开源的东西,质量就高,但至少关注度较高,使用人数较多,口碑较好的开源项目 , 质量是有一定保证的,这其中的道理很简单 。
即便存在一些问题,也可以通过提交反馈,不断改进 。最重要的是,你自己花时间造的轮子 , 需要很多精力维护,而充分利用开源项目,能帮助你节省很多时间,把精力专注在最需要你关心的问题上 。
从另一个方面来说,开源项目中的一些知名项目,往往是领域内的翘楚所写,学习这些高手的代码,能让你了解到好的代码应该是怎样的,培养出更灵敏的嗅觉 , 识别代码中的各种味道
java高质量代码片段的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java优质代码、java高质量代码片段的信息别忘了在本站进行查找喔 。

    推荐阅读