ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java狂神说基础30-40课

2021-07-06 10:05:09  阅读:141  来源: 互联网

标签:Java String 30 System 空格 println 狂神 大括号 out


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) < diff) {
           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里会自动帮你填充。

标签:Java,String,30,System,空格,println,狂神,大括号,out
来源: https://blog.csdn.net/weixin_42022326/article/details/118513956

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有