java 核心技术 读后总结

总结

1.少用八进制,以及二进制。

那么就是直接用16进制或10进制吗?额,想当年有这样搞过,后面就uuid了。

2.>>>用0填充高位>>用符号位填充高位<<<不存在

冷知识吧,也就当年校招见过人问过

3.java没有多维数组,只有一维数组

我们所说的二维数组,本质上是数组的数组

4.编译多个名字差不多的文件

如 AbcController和AbcService两个文件,javac Abc*.java 即可一次性编译两个

5.比较是不是同一个类 用equals而不是instanceof

因为子类instanceof也报true

Objects.equals(a,b);

a instanceof b;

6.list代替数组

7.这书就是各种带图片小标题,警告注意重点*n的,还不如给个标题号啊。同样是基础书,我偏向think in java 。

8.异常处理

一.异常处理不能顶替简单的测试。就是不要随便利用异常进行业务代码,其实这个在其他语言里面很经常在具体的异常里面进行相应的业务操作。

二.不要过分细分异常。很近的几个异常可以放到同一个try里面

错误例子
try(){
    a
}catch(){

}

try(){
    b
}catch(){

}
正确例子

try(){
   a
  b
}catch(){

}catch(){

}

三.利用异常的层次结构。几个异常若异常处理一致,通常是log,可以用父类包含

错误例子
try(){
  a
 b
}catch(aException ){

}catch(bException){

}

正确例子,aException bException,是cException的子类
try(){
  a
 b
}catch(cException ){

}

四。不要压制异常。不要用太大的异常父类处理,导致其他的异常都被拦截了,无法具体异常具体处理。

错误例子
try(){
  a
 b
}catch(Exception ){

}

正确例子,cException是Exception的子类
try(){
  a
 b
}catch(cException ){

}

五.检查错误苛待比放任好。就是宁愿写成二的那种正确例子,也不写成四的正确例子,因为大多数人都是写成四的错误例子。

六.不要羞于处理异常。就是一个程序员素质的问题,没什么好说的。

9.断言,有点想深入了解,但是和think in java 里面都是说了几句。看来断言的实际使用真的很少,而且个人观感也是if,try,log等就可以代替,并且这三种的使用很频繁。

10.集合和数据之间的转换

        String[] values = new String[]{"a","b","a"};
        HashSet set = new HashSet(Arrays.asList(values));
        String[] values2 =(String[]) set.toArray();//error 
        String[] values3 = (String[]) set.toArray(new String[0]);

可以做到简单去重,这段代码只是开了个头,后续的相信大家都能自己补充。

11.编写代码是,若参数是集合,应尽可能使用接口。好处匹配的类跟多,不同类型传进来不需要特意转。

12.xml,这些的文件解析java有自带的功能实现啊,但是考虑到文档的可读性,,,我还是选择第三方的,因为他们的文档接地气啊...

13.执行sql语句的防注入,其实就是select * from emp where name = ?和select * from emp where name =maozhedong的区别,这算是一种代码规范了,我都是默认第一种的

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JackeyGao的博客

关于Python的20个面试题

Python 是一个高级、解释型、交互式和面向对象的脚本语言. Python 语言设计具有高度可读性的, 使用一些常见的英语词组和其他语言常用的标点符号组成的语...

17710
来自专栏AhDung

【手记】注意BinaryWriter写string的小坑——会在string前加上长度前缀length-prefixed

之前以为BinaryWriter写string会严格按构造时指定的编码(不指定则是无BOM的UTF8)写入string的二进制,如下面的代码:

32730
来自专栏伪君子的梦呓

华氏温度转摄氏温度~ C++ 做法

题目链接:http://www.dotcpp.com/oj/problem1005.html

19130
来自专栏java架构师

【SQL Server】系统学习之三:逻辑查询处理阶段-六段式

一、From阶段 针对连接说明: 1、笛卡尔积 2、on筛选器 插播:unknown=not unknuwn 缺失的值; 筛选器(on where having...

371110
来自专栏逆向技术

逆向知识第六讲,取摸优化的几种方式

        逆向知识第六讲,取摸优化的几种方式 除法讲完之后,直接开始讲 % 运算符在汇编中表现形式 首先C的高级代码贴上来. 高级代码: // Tedy....

214100
来自专栏从流域到海域

《笨办法学Python》 第18课手记

《笨办法学Python》 第18课手记 本节课将创建函数,跟C语言里面的的定义函数差不多。 作者在每个函数开头都加了解释该函数功能的英文注释。为了方便理解,我将...

21480
来自专栏Modeng的专栏

Javascript数组系列三之你不了解的迭代2

今天我们来继续 Javascript 数组系列的文章,上文 《Javascript数组系列二之迭代方法1》 我们说到一些数组的迭代方法,我们在开发项目实战的过程...

15330
来自专栏用户画像

7.7.1外部排序

内部排序都是在内存中进行的,而在实际应用中,经常需要对大文件进行排序,因为文件中的记录很多、信号量庞大,无法将整个文件拷贝进内存中进行排序。因此,需要将待排序的...

8810
来自专栏一个会写诗的程序员的博客

Kotlin 中的集合类排序Kotlin 开发者社区

Kotlin使用扩展方法构建在Java Collection框架之上。这大大提高了可用性和可读性,而无需第三方依赖,如Apache Commons或Guava。

22450
来自专栏人工智能LeadAI

共享变量 tensorflow解读

你可以在怎么使用变量中所描述的方式来创建,初始化,保存及加载单一的变量.但是当创建复杂的模块时,通常你需要共享大量变量集并且如果你还想在同一个地方初始化这所有的...

13120

扫码关注云+社区

领取腾讯云代金券