java程序员修炼之道(1)
来源:互联网 发布:js 新建date对象 编辑:程序博客网 时间:2024/05/29 19:11
这些天看了《java程序员修炼之道》这本书,觉得还不错,将自己的一些理解以及对本书中的重点归纳了下,希望对后来者有些帮助,后续会根据每天理解的内容,陆续地写一些文章,望自己能够每天都处在学习中。
第一章主要是介绍了java7的改进地方:
1.java是解释性语言还是编译性语言
在这一点上,本人跟作者的观点有些不一样,c/c++这些都是典型的编译性语言,而java/c#等之类的语言是解释性的语言。因为我们知道编译性语言编译之后直接可以以机器语言的形式运行,而像java c#等语言编译之后转换为IL语言,运行时被平台(jvm .net)解释为机器语言运行,所以我个人认为java应该是一种解释性的语言。
2.语法糖
语法糖是众多高级语言的必备,为什么会出现语法糖?个人认为正是语言的简洁以及学习成本导致的,当一个语言能够以更简洁的形式来实现目的,那将会诱使更多的人来使用该语言。所以后续出现的python ruby等之类的语言,究其根本,其实就是专业化以及简洁的需求导致的。所以在我们的学习中,对待这种语法糖的形式了解之后,更要深究该用法的实际表示方式,这样你才能够更好地运用。如下的例子:
(提醒一下,当我使用intelij idea的时候,写出下面的代码,会报错(你使用的模块时java6。。。),但是我的工具已经换成java8了,为什么会出现这种情况呢?后来查询了一些资料,终于知道我的项目的模块设置出现错误,如图)
public static void main(String[] args) { int para = Integer.parseInt("1100110",2); System.out.println(para); int param = 0b1100110; //Process(); System.out.println(param); }
3.异常处理优化
直接见代码:
public static Configuration GetConfiguration(String fileName) { Configuration config = null; try { config = GetConfiguration(""); }catch(FileNotFoundException fileEx)//旧方式 { }catch(IOException ex) { }catch(ConfigurationException configEx) { }catch(ParseException parasEx) { }catch (FileNotFoundException | ConfigurationException | ParseException ex)//修改后的方式-更加清晰 { }catch(final Exception em) { } }4.TWR-(try-with-resource)
该改进让我想起了.net中的释放非托管资源的用法,using(filestream fs = file.open(""))。java中的优化如下:
public static void Process() { try { InputStream input = null; URL url = new URL("http://www.baidu.com"); try { input = url.openStream(); OutputStream out = new FileOutputStream("a.txt"); try { byte[] bt = new byte[4096]; int length = 0; while ((length = input.read(bt)) > 0) { out.write(bt, 0, length); } } catch (IOException io) { } finally { try { out.close(); } catch (IOException clo) { } } } catch (IOException ex) { } finally { try { input.close(); } catch (IOException clos) { } } }catch (MalformedURLException e) { } try(OutputStream out = new FileOutputStream("a.txt"))--优化的写法 { } }简单地介绍了第一章的知识点,可能有些没有总结自己的理解,直接使用了代码来展现,也是希望自己多动手来理解。谢谢!
- java程序员修炼之道(1)
- java程序员修炼之道
- java 程序员修炼之道
- Java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- java程序员修炼之道
- 程序员修炼之道(1)
- 《程序员修炼之道》【1】
- Java程序员修炼之道 之 Logging(1/3)
- (10.2.3.4)静电的设计教室:APP设计利器Sketch教程(04)-钢笔与路径(原创)
- (转)Android系统Intent中的Uri使用
- p124 第三章 第39题 潘璠
- Could not load java.net.BindException mysql驱动加载两次后报错的做法
- Letter Combinations of a Phone Number
- java程序员修炼之道(1)
- 使用@synchronized(self)
- 如何清除一个被占用的tty端口
- HDOJ An Easy Task 1076
- C. Swaps CodeForces 134C
- poj 1753 Flip Game(高斯消元 开关问题)
- 5.4
- 负载平衡
- 二叉树的计数javascript