作者:AdrianFree覀 | 来源:互联网 | 2023-09-18 10:49
1包机制一般利用公司域名倒置作为包名:com.kuangstudy.blog如果空的包不能展开。把项目列表中齿轮模样的按键里的Compactmiddlepackage取消勾选2IJ
1包机制
一般利用公司域名倒置作为包名:com.kuangstudy.blog
如果空的包不能展开。把项目列表中齿轮模样的按键里的 Compact middle package取消勾选
2IJ中,按住Ctrl键,鼠标点击类或方法,进入父类查看
3import必须在package下面
4*通配符,导入所有名下包
5百度搜索阿里巴巴开发手册,几个主义的点
-
【强制】类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO / PO / UID 等。
正例:ForceCode / UserDO / HtmlDTO / XmlService / TcpUdpDeal / TaPromotion
反例:forcecode / UserDo / HTMLDto / XMLService / TCPUDPDeal / TAPromotion
-
【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格。
正例: localValue / getHttpMessage() / inputUserId
-
【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
正例:MAX_STOCK_COUNT / CACHE_EXPIRED_TIME
反例:MAX_COUNT / EXPIRED_TIME
-
【强制】如果是大括号内为空,则简洁地写成{}即可,大括号中间无需换行和空格;如果是非 空代码块则:即大括号的首尾要扎根到起始或结束位置
1) 左大括号前不换行。
2) 左大括号后换行。
3) 右大括号前换行。
4) 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。
-
【强制】采用 4 个空格缩进,禁止使用 Tab 字符。 说明:如果使用 Tab 缩进,必须设置 1 个 Tab 为 4 个空格。IDEA 设置 Tab 为 4 个空格时,请勿勾选 Use tab character;而在 Eclipse 中,必须勾选 insert spaces for tabs
正例:
public static void main(String[] args) {
// 缩进 4 个空格
String say = "hello";
// 运算符的左右必须有一个空格
int flag = 0;
// 关键词 if 与括号之间必须有一个空格,括号内的 f 与左括号,0 与右括号不需要空格
if (flag == 0) {
System.out.println(say);
}
// 左大括号前加空格且不换行;左大括号后换行
if (flag == 1) {
System.out.println("world");
// 右大括号前换行,右大括号后有 else,不用换行
} else {
System.out.println("ok");
// 在右大括号后直接结束,则必须换行
}
}
-
【强制】注释的双斜线与注释内容之间有且仅有一个空格。
正例:
// 这是示例注释,请注意在双斜线之后有一个空格
String commentString = new String()
-
【强制】浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用 equals
来判断。
说明:浮点数采用“尾数+阶码”的编码方式,类似于科学计数法的“有效数字+指数”的表示方式。二进
制无法精确表示大部分的十进制小数,具体原理参考《码出高效》。
反例:
float a = 1.0F - 0.9F;
float b = 0.9F - 0.8F;
if (a == b) {
// 预期进入此代码块,执行其它业务逻辑
// 但事实上 a==b 的结果为 false
}
Float x = Float.valueOf(a);
Float y = Float.valueOf(b);
if (x.equals(y)) {
// 预期进入此代码块,执行其它业务逻辑
// 但事实上 equals 的结果为 false
}
正例:
(1) 指定一个误差范围,两个浮点数的差值在此范围之内,则认为是相等的。
float a = 1.0F - 0.9F;
float b = 0.9F - 0.8F;
float diff = 1e-6F;
if (Math.abs(a - b) System.out.println("true");
}
(2) 使用 BigDecimal 来定义值,再进行浮点数的运算操作。
BigDecimal a = new BigDecimal("1.0");
BigDecimal b = new BigDecimal("0.9");
BigDecimal c = new BigDecimal("0.8");
BigDecimal x = a.subtract(b);
BigDecimal y = b.subtract(c);
if (x.compareTo(y) == 0) {
System.out.println("true");
}
-
【强制】如上所示 BigDecimal 的等值比较应使用 compareTo()方法,而不是 equals()方法。 说明:equals()方法会比较值和精度(1.0 与 1.00 返回结果为 false),而 compareTo()则会忽略精度。
6JavaDoc Indea导出
Tools->Generate JavaDoc 选择导出哪个类或项目、导出位置 Locale 一般填 zh_CN Other command line arguments一般填 -encoding UTF-8 -charset UTF-8 -link http://docs.Oracle.com/javase/8/docs/api
7Scanner
配合scanner.hasNext()或scanner.hasNextLine()检测是否还有输入内容。
最后要把.close()关闭,节约资源
养成良好习惯,凡是属于IO流的类如果不关闭会一直占用资源。
下面案例输入” Hello World!“ 分别用.next 与 .nextline
next不能得到带空格的字符串
next以检测到第一个有效字符之后的第一个空格结束,也就是输入“ Hello World!”会得到Hello,前后都没有空格
nextline以回车结束
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
if(scanner.hasNext()){
String str = scanner.next();
System.out.println("输入结果时 "+str);
}
scanner.close();
}
}
//输出为 Hello(前后无空格)
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
if(scanner.hasNextLine()){
String str = scanner.nextLine();
System.out.println("输入结果时 "+str);
}
scanner.close();
}
}
输出 Hello World!(前面有若干个空格)
8数值比较可以用==,尽量 相减后 <小数值(比如0.001F)字符串比较用 .equal
9反编译查看java源码的方法
我们知道,java文件,通过编译器比如India,变成class文件,然后class文件即字节码文件,放入JVM中运行。
我们现在把class格式通过java格式看到
我们从资源管理器打开class文件,(java格式文件在工程文件中是,class格式文件在工程文件的同级目录,有个out文件夹,里面有class文件)从资源管理器中复制过去,然后可以看到源码。
package com.zhaoxin.Scanner;
public class Demo04 {
public static void main(String[] args) {
String str = new String();
str="胡";
switch (str){
case "胡":
System.out.println("1");
break;
case"照":
System.out.println("2");
break;
}
}
}
package com.zhaoxin.Scanner;
public class Demo04 {
public Demo04() {
}
public static void main(String[] args) {
new String();
String str = "胡";
byte var3 = -1;
switch(str.hashCode()) {
case 29031:
if (str.equals("照")) {
var3 = 1;
}
break;
case 32993:
if (str.equals("胡")) {
var3 = 0;
}
}
switch(var3) {
case 0:
System.out.println("1");
break;
case 1:
System.out.println("2");
}
}
}
10while 与 Do while
Do while 至少走一次,毕竟先执行
11for
不会输出3,输出0,0,1,2
public class ForDemo001 {
public static void main(String[] args) {
int i = 0;
for(i = 0;i<3;i++){
System.out.println(i);
}
}
}
System.out.print("\n");System.out.println();
100.for 在Indea里会自动帮你填充。