Java基础查漏补缺2

无规矩不成方圆

必须按规范来写代码

阿里巴巴开发手册

运行java文件

第一个Java文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AIo5rALc-1649676833506)(C:\Users\孔德宝\AppData\Roaming\Typora\typora-user-images\image-20220411102625751.png)]

public class Hello{
    public static void main(String[] args){
        System.out.print("Hello,World!");
    }
}
  • java区分大小写

  • 尽量使用英文输入输出

  • 文件名和类名必须保持一致

  • 符号使用英文

  • 括号成对出现

    新建类和包

    1. 新建类 New class
    2. 新建包 New Package

    语法

  • 标识符字母/下划线/美元符号 开通

  • 严格区分大小写

  • //基本类型
    long num3=20L;//long类型后面加L用来和short/int区分
    float num4=50.1F//后加F
    //double不用加F
    //String不是关键字,是类
    boolean flag=false;
    
    //引用类型
    类,接口,数组//除了基本都是引用
    
  • 进制

    • 二进制0b
    • 十进制
    • 八进制0
  • 浮点数

    • 离散 有限 舍入误差 大约 接近但不等于
    • 最好完全避免进行浮点数比较
  • BigDecimal //数学工具类(可以避免误差,用来比较)

  • 字符串拓展

    char c1='a';
    char c2='中';
    System.out.println(c1);
    System.out.println((int)c1);//强制转换
    System.out.println((int)c2);//强制转换
    //所有的字符本质还是数字
    //编码 Unicode  ASCLL表 2字节 65536 Excel 2^16=65536
    
  • 转义字符

    // \t 制表符
    // \n 换行
    ... ...
    
  • Less is More! 代码要精简易读

类型转换

  • 类型优先级 低-----高

    • byte<short<char<int<long<float<double //小数优先级一定大于整数
  • 强制类型转换(高到低)

    int i=128;
    byte b=(byte)i;
    //强制转换  (类型)变量名;
    
  • 自动类型转换(低到高)

    int i=128;
    double b=i;
    
  • 不能对boolean转换

  • 不能转换为不相关类型

  • 高—>低强制转换

  • 可能出现内存溢出或者精度损失

精度问题

  • 操作比较大的数时,注意精度问题

  • JDK7新特性,数字之间可以用下划线分隔

    int money=1_0000_0000;
    int years=20;
    System.out.println(money*years);//损失精度
    System.out.println(money*(long)years);
    //long后面尽量用大写的L;小写l经常被看为1;
    

变量

  • 类变量 实例变量 局部变量

    public class Hello{
          static int all=0;            //类变量加static,作用域非常大
          String str="Hello World!";   //实例变量,在类里面,方法的外面,从属于对象
          public void method(){
                 int i=0;              //局部变量(在方法中)
          }
    }
    

    public class Demo08 {
    
        //类变量 static
        static double salary=2500;//类变量:工资;
        
        String name;//实例变量,如果不自行初始化,会设置为这个类型的默认值 0/ 0.0/ u0000字符串/false布尔值
        //除了基本类型,其余默认值都是NULL;
        int age;
    
        public static void main(String[] args) {
            int i=10;//局部变量,必须声明和初始化值
            System.out.println(i);
            //变量类型 变量名字=new Demo08();
            Demo08 demo08=new Demo08();//引用实例变量的语句(比较麻烦)
            System.out.println(demo08.age);
    
            //直接可以调用类变量 static
            System.out.println(salary);
        }
    }
    
    

常量

  • 常量时不能改变的变量;静态的常量,不会改变的;

  • final 常量名=值;

    public class Domo09 {
    
        static final double PI=3.14;
        //final static  double PI=3.14;修饰符不存在先后顺序
        public static void main(String[] args) {
            System.out.println(PI);
        }
    }
    

变量规范(重点)

  • 所有变量,方法,常量:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary(月工资) 除了第一个单词以外,后面单词首字母大写;
    • lastName
  • 局部变量:首字母小写+驼峰原则;
  • 常量:全部大写和下划线:MAX_VALUE
  • 类名:首字母大写+驼峰原则;
  • 方法名:首字母小写+驼峰原则;

运算符(补充知识盲点)

instanceof

位运算符:&,|,^ , ~ , >> , << , >>>

条件运算符:?:

扩展赋值运算符:+= ,-=,*=,/=

位运算符

A = 0011 1100;
B = 0000 1101;
A&B = 0000 1100;//与运算
A|B = 0011 1101;//或运算
A^B = 00011 0001;//异或运算
~B = 1111 0010;//取反运算
2*8 = 16怎么运算最快:2*2*2*2//位运算效率高
>>右移 /2  
<<左移 *2
System.out.println(2<<3);//左移三位即可
package operator;

public class Domo01 {
    public static void main(String[] args) {
        //二元运算符
        //ctrl+d 复制当前行到下一行
        int a = 10;
        int b = 20;
        int c = 25;
        int d = 25;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);//得0.5,要强转成double
    }
}

package operator;

public class Domo02 {
    public static void main(String[] args) {
        //casd意为转换
        //运算有Long结果就是long,其余的结果都是int
        //如果有一个数是double,结果就是double
        long a=123124545676878;
        int b=129;
        short c=10;
        byte d=4;
        System.out.println(a+b+c+d);
        System.out.println(b+c+d);
        System.out.println(c+d)}
}

比较运算符

package operator;

public class Domo03 {
    public static void main(String[] args) {
        //关系运算符返回结果:只有ture/false;bool
        int a=10;
        int b=20;
        System.out.println(a==b);
        System.out.println(a>b);
        System.out.println(a!=b);
        //取余,模运算
        System.out.println(a%b);
    }
}

幂运算

double pow = math.pow(3,2);//3^2运用工具类来操作

字符串的连接

package operator;

public class Domo04 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(""+a+b);/*输出为1020,因为在+两边如果出现字符串,
        就会把另外的操作数转化为String进行连接*/
        System.out.println(a+b+"");//结果为30,因为先运算a+b
    }
}

三元运算符

x?y:z
//如果x==true 则结果为y,否则为z;
package operator;

public class Domo05 {
    public static void main(String[] args) {
        int score = 50;
        String type = score<60?"不及格":"及格";//虽然可以用if,但是这个必须掌握!
        System.out.println(type);
    }
}

运算符的优先级,可以用()来区分,便于理解;

包机制

  • 一般用公司域名倒置作为包名;www.baidu.com --------- com.baidu.www

  • 定义包和导入包

    package com.kong.base;//定义包
    
    import  com.kong.*    //*是通配符,会导入该包下所有类
    
    import java.util.Date;//导入包
    
    public class Demo01 {
        public static void main(String[] args) {
    
            Date//按住Alt+回车自动生成错误信息并自动排错
        }
    }
    
    

JavaDos

  • JDK帮助文档

  • JavaDos命令是用来生产自己API文档的

  • 参数信息

    • @author 作者名
    • @version 版本号
    • @since 指明需要最早使用的jdk版本
    • @param 参数名
    • @return 返回值情况
    • @throws 异常抛出情况
package com.kong.operator;

/**                    //输入/**然后回车自动生成Dos注释
 * @author 孔德宝       //加在类上面就是类的注释,加在方法上面就是方法的注释
 * @version 1.0
 * @since 1.8
 */


public class Doc {

    String name;//是一个属性

    /**
     * @author 孔德宝
     * @param name
     * @return
     * @throws Exception
     */

    //是一个方法
    public String test(String name)throws Exception{
        return name;
    }
}

查看自己的API文档

  • 选择Open In/Explorer打开该类所在文件夹

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W0PGIZ7h-1649676833508)(C:\Users\孔德宝\AppData\Roaming\Typora\typora-user-images\image-20220411191741845.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fKx3ac7E-1649676833509)(C:\Users\孔德宝\AppData\Roaming\Typora\typora-user-images\image-20220411192002029.png)]

  • 打开cmd命令行,输入javadoc -encoding UTF-8(防止代码里的中文乱码) -charset UTF-8(f防止字符串里的中文乱码) Doc.java(把java文件编译成一个文档供我们阅读)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6W03LNSX-1649676833509)(C:\Users\孔德宝\AppData\Roaming\Typora\typora-user-images\image-20220411191713237.png)]

在文件夹生产若干html文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bhqIRDct-1649676833509)(C:\Users\孔德宝\AppData\Roaming\Typora\typora-user-images\image-20220411192255184.png)]

点击进入index.html(index是首页的意思)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zLwS9btG-1649676833510)(C:\Users\孔德宝\AppData\Roaming\Typora\typora-user-images\image-20220411192405124.png)]

//以上是通过命令行 javadoc 参数 Java文件

//作业:学会查找使用IDEA生成JavaDoc文档!

//学会面向百度编程!

//基础部分的一切知识以后每天都会用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值