热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java狂神说基础3040课

1包机制一般利用公司域名倒置作为包名:com.kuangstudy.blog如果空的包不能展开。把项目列表中齿轮模样的按键里的Compactmiddlepackage取消勾选2IJ




1包机制

一般利用公司域名倒置作为包名:com.kuangstudy.blog

如果空的包不能展开。把项目列表中齿轮模样的按键里的 Compact middle package取消勾选


2IJ中,按住Ctrl键,鼠标点击类或方法,进入父类查看
3import必须在package下面
4*通配符,导入所有名下包
5百度搜索阿里巴巴开发手册,几个主义的点
  1. 【强制】类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO / PO / UID 等。

    正例:ForceCode / UserDO / HtmlDTO / XmlService / TcpUdpDeal / TaPromotion

    反例:forcecode / UserDo / HTMLDto / XMLService / TCPUDPDeal / TAPromotion

  2. 【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格。

    正例: localValue / getHttpMessage() / inputUserId

  3. 【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。

    正例:MAX_STOCK_COUNT / CACHE_EXPIRED_TIME

    反例:MAX_COUNT / EXPIRED_TIME

  4. 【强制】如果是大括号内为空,则简洁地写成{}即可,大括号中间无需换行和空格;如果是非 空代码块则:即大括号的首尾要扎根到起始或结束位置

    1) 左大括号前不换行。

    2) 左大括号后换行。

    3) 右大括号前换行。

    4) 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。

  5. 【强制】采用 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");
    // 在右大括号后直接结束,则必须换行
    }
    }

  6. 【强制】注释的双斜线与注释内容之间有且仅有一个空格。

    正例:

    // 这是示例注释,请注意在双斜线之后有一个空格

    String commentString = new String()

  7. 【强制】浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用 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");
    }

  8. 【强制】如上所示 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里会自动帮你填充。



推荐阅读
author-avatar
AdrianFree覀
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有