侧边栏壁纸
  • 累计撰写 793 篇文章
  • 累计创建 1 个标签
  • 累计收到 1 条评论
标签搜索

目 录CONTENT

文章目录

Tips

Dettan
2021-04-10 / 0 评论 / 0 点赞 / 183 阅读 / 2,296 字
温馨提示:
本文最后更新于 2022-07-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
/ 后端 / Tips


前端往后传值为空的话映射到Integer里是null,映射到int里是0. 插入的话小心点.(SpringMVC中)
引用变量如果一开始为null的话传到函数里在函数外还是null,也就是函数里的更改函数外面取不到
用 *.html访问jsp 做静态化,但是如果返回json的话,会报406错误.因为浏览器认为html的都是html
@JsonProperty("u") 转成json后这个字段以这个命名.
System.out.println(a=a); 输出的变量a的内容
byte code :字节码
byte类型范围是-128-127
this:代表就是当前对象,谁调用这个方法,this指代的就是谁.static里没有this
小数常量默认是float还是double?
string 是由char 还是byte组成?
变量的默认值?
把经常用到的需要计算来的数据不会变的数据存成static类型,在static{}里初始化.(from localDate包)
Long 超出大小之后变成负的,不会报错
paramter = Arrays.toString(arguments);
float 运算会有很小的误差,是近似运算

优化权限取出, 把所有权限存到redis里,更新修改时用spring 更新缓存. 用户登录时只查询用户拥有的权限id,然后和redis里的对比一下再返回前端.


关掉包管理工具里的离线模式
删除集合元素时用iterator,for in 也行. 不用考虑index是不是从0开始。
两个int相除结果还是int
插入都是插在指定值的左边
System.currentTimeMillis()
判断一个数是不是2的幂:
1. 若 n&n-1==0 则是2的幂
2. 若 n&-n==n 则是2的幂
分析
4.
以4(100)、7(0111)、8(1000)为例
5.
以4(100)、7(0111)、8(1000)为例

System.out.println(a=a); 输出的变量a的内容
byte code :字节码
byte类型范围是-128-127
boolean取值范围为true/false,占1位。


运行project的calss文件,到F:\JAVA\code\myCode\src\out\production\myCode 目录下,这个project名字叫myCode,打开cmd 运行
java com.others.Demo5
就可

12、用最有效率的方法计算 2 乘以 8? 答: 2 << 3(左移 3 位相当于乘以 2 的 3 次方,右移 3 位相当于除以 2 的 3 次方)。 补充:我们为编写的类重写 hashCode 方法时,可能会看到如下所示的代码, 其实我们不太理解为什么要使用这样的乘法运算来产生哈希码(散列码),而且 为什么这个数是个素数,为什么通常选择 31 这个数?前两个问题的答案你可以 自己百度一下,选择 31 是因为可以用移位和减法运算来代替乘法,从而得到更 好的性能。说到这里你可能已经想到了:31 * num <==> (num << 5) - n um,左移 5 位相当于乘以 2 的 5 次方(32)再减去自身就相当于乘以 31。现 在的 VM 都能自动完成这个优化。

13、数组有没有 length()方法?String 有没有 length()方法?
答:数组没有 length()方法,有 length 的属性。String 有 length()方法。Jav
aScript 中,获得字符串的长度是通过 length 属性得到的,这一点容易和 Java
混淆

31、String s=new String(“xyz”);创建了几个字符串对象?
答:两个对象,一个是静态存储区的"xyz",一个是用 new 创建在堆上的对象。
32、接口是否可继承(extends)接口? 抽象类是否可实现(implements)
接口? 抽象类是否可继承具体类(concrete class)?
答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类可继承具
体类,但前提是具体类必须有明确的构造函数。
33、一个“.java”源文件中是否可以包含多个类(不是内部类)?有什么限制?
答:可以,但一个源文件中最多只能有一个公开类(public class)而且文件名
必须和公开类的类名完全保持一致。

34、用接口模拟可伸缩的枚举
35、注解优先于命名模式
38、检查参数的有效性
公有方法检查参数,参数异常需要跑出Exception。私有方法利用断言assertion检查参数。
40、谨慎设计方法签名
41、慎用重载
42、慎用可变参数
43、返回0长度的数组或者集合,而不是null

46、for-each优先于for循环
for-each规避掉了for循环的index变量的引用,通常来说它是不必要的——会增加引入错误的风险,并且风险一旦发生,很难被发现。不过有三种情况下,无法使用for-each(注:在jdk1.8中已经很好的解决了这些问题)。
过滤
转换
平行迭代


48、如果需要精确的答案,请避免使用float和double
float和double是执行的二进制浮点运算,目的是在广泛数值范围上使用精确的快速近似计算而设计的。然而他们并没有提供完全精确的计算(实际应用中,经常会碰到出现x.99999等结果)。尤其是,在进行货币计算时,他们并不适用。比如:
System.out.println(1.03-.42);
得到的结果将是:0.610000000001。
为了解决这个问题,需要使用BigDecimal。然而这也有一些问题,相对于普通的运算,它显得更加麻烦,而且也更慢。通常来说后一个缺点可以忽略,但是前者可能会让人很不舒服。有一种做法是将需要处理的数值*10(或更多),使用int进行计算,不过需要你自己处理四舍五入等操作。


49、基本类型优先于装箱基本类型
基本类型只有值,装箱类具有与他们值不同的同一性。
基本类型只有功能完备的值,装箱类还具有非功能值:null。所以你可能会碰到NPE
基本类型省空间省时间

53、接口优先于反射机制
使用反射机制会带来以下的问题:
丧失了编译期类型检查
代码笨拙冗长
性能损失
反射基本上只适合用在编写组件时、代码分析器、RPC等场景下使用。在使用反射机制时,如果可能,尽可能只通过反射机制实例化对象,而访问方法时,使用已知的接口或者超类。

57、只针对异常情况才使用异常
不要尝试通过异常机制来做正常代码应该做的事情,比如,检查数组下标。
jvm很少对异常进行优化,因为它只用于不正常的情况。并且,如果你将代码放入try-catch代码块,jvm就丧失了本来可以对它进行的优化。

58、对于可恢复的情况使用受检异常,对于编程错误的情况使用运行时异常
如果期望调用者适当的恢复,则需要使用受检异常,强迫调用者食用try-catch代码块,或者将他们抛出去
当调用发生前提违例——违反约定的情况时,使用运行时异常,这个时候程序已经无法再执行下去了。例如调用数组的-1索引。

8、覆盖equals方法请遵守通用约定
自反性。x.equals(x) == true
对称性。当前仅当y.equals(x)==true时,x.equals(y)==true
传递性。if(x.equals(y)&&y.equals(z)),y.equals(z)==true
一致性。
非空性。x.equals(null)==false
9、覆盖equals方法时总要覆盖hashCode
为了保证基于散列的集合使用该类(HashMap、HashSet、HashTable),同时,也是Object.hashCode的通用约定,覆盖equals方法时,必须覆盖hashCode。
10、始终覆盖toString
Object的toString方法的通用约定是该对象的描述。注意覆盖时,如果有格式,请备注或者严格按照格式返回。
11、谨慎覆盖clone
12、考虑实现Comparable接口
xml 解析方式,一种是Dom方式,以树形解析,一种是SAX,使用的是事件模型.
静态的是无被重写
0

评论区