【个人笔记/Java】JavaSE(一)基础语法

注释

当行注释

//当行注释l

多行注释

/*
    多行注释
    注释一段文字
*/

文档注释

//JavaDoc:文档注释   /** */

/**
* @Deserciption HelloWorld
* @Author
*/

标识符

关键字
Java所有的组成部分都需要名字。类名、变量名以及方法名都被称之为标识符

数据类型

基本类型

public static void main(String[] args) {
    //八大基本数据类型

    //整数
    int num1 = 10; //最常用
    byte num2 = 20;
    short num3  =30;
    long num4 = 40L; //Long类型要在后面加L

    //小数:浮点数
    float num5 = 50.1F; //float类型要在后面加个F
    double num6 = 3.1415926535897932846263;

    //字符
    char name = 'A';
    /**
        //字符串,String不是关键字,是类
        String name = "yuki";
         */

    //布尔值
    boolean flag = true;
    boolean flag1 = false;

}

引用类型

接口

数组

数据类型拓展

  • 整数拓展:进制
    int i = 10;
    int i2 = 010; //八进制0
    int i3 = 0x10; //十六进制0x
    
    System.out.println(i); //10
    System.out.println(i2); //8
    System.out.println(i3); //16
    
    在这里插入图片描述
  • 浮点数拓展:如银行业务如何表示?
    float f = 0.1f; //0.1
    double d = 1.0/10;
    
    System.out.println(f==d);//false
    System.out.println(f);
    System.out.println(d);
    
    float d1 = 223233232f;
    float d2 = d1 + 1;
    System.out.println(d1==d2);//true
    
    在这里插入图片描述
    最好完全不要使用浮点数进行比较!
  • 字符拓展:所有的字符本质上还是数字
    编码采用Unicode编码,如97表示a,65表示A,一个字符占两个字节
    范围:0 - 65536 Excel 2^16=65536
    char c1 = 'a';
    char c2 = '中';
    
    System.out.println(c1);
    System.out.println((int)c1); //强制转换
    System.out.println(c2);
    System.out.println((int)c2); //强制转换
    //所有的字符本质还是数字
    // U0000 UFFF
    char c3 = '\u0061';
    System.out.println(c3); //a
    
    在这里插入图片描述
  • 布尔值拓展:Less is More! 代码要精简易读!

类型转换

容量低–>容量高:

byte,short,char->int->long->float->double

  • 强制转换:容量高–>低;
  • 自动转换:低–>高
int i =128;
byte b = (byte) i; //内存溢出
double a = i; //自动转换
//强制转换  (类型)变量名  高-->低
//自动转换   低-->高
System.out.println(i); //182
System.out.println(b); //-128
System.out.println(a); //128

在这里插入图片描述

注意点:

  1. 不能对布尔值进行转换
  2. 不能把对象转换为毫不相干的类型
  3. 高到低,强制转换
  4. 转换可能存在内存溢出,或者精度问题
    System.out.println((int)23.7); //23
    System.out.println(((int)-45.89f)); //-45
    
    char c = 'a';
    int d = c + 1;
    System.out.println(d); //98
    System.out.println((char)d); //b
    
    在这里插入图片描述

注意点:

  • 操作比较大的数的时候,注意溢出问题

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

    int money = 10_0000_0000;
    System.out.println(money); //1000000000
    int years = 20;
    int total = money*years; //-1474836480,计算的时候溢出了
    long total2 = money*years; //默认是int,转换之前已经存在问题了
    long total3 = money*(long)years; //先把一个数转为long
    
    System.out.println(total); //-1474836480
    System.out.println(total2); //-1474836480
    System.out.println(total3); //20000000000
    

    在这里插入图片描述

变量

Java是一种强类型语言

  • 注意点:

    • 每个变量都有类型,类型可以是基本类型,也可以是引用类型
    • 变量名必须是合法标识符
    • 变量声明是一条完整的语句,因此每一个变量名必须以分号结束
  • 变量作用域

    • 类变量
      变量名用static修饰,从属于类
    //类变量 static 从属于类
    static double salary = 2500;
    
    //main方法
    public static void main(String[] args) {
        //类变量 static
        System.out.println(salary); //2500.0
    }
    

    在这里插入图片描述

    • 实例变量
      从属于对象;如果不进行初始化,这个类型的默认值为0 0.0;
      布尔值默认为false
      除了基本类型,其余的默认值都为null
    String name;
    int age;
    
    //main方法
    public static void main(String[] args) {
        //变量类型  变量名字 = new Demo10();
        Demo10 demo10 = new Demo10();
        System.out.println(demo10.name); //null
        System.out.println(demo10.age); //0
    }
    

    在这里插入图片描述

    • 局部变量
    //main方法
    public static void main(String[] args) {
    
        //局部变量
        int i = 10;
        System.out.println(i); //10
    }
    
    //其他方法
    public void add(){
        // System.out.println(i); //无法输出
    }
    

    在这里插入图片描述

常量

常量即不会动的值

//修饰符,不存在先后顺序
final static double PI =3.14;
static final double PI1 =3.14;

public static void main(String[] args) {
    System.out.println(PI); //3.14
    System.out.println(PI1); //3.14
}

在这里插入图片描述

变量名规范

  • 变量名、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary 、lastName
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man、GoodMan
  • 方法名:首字母小写和驼峰原则:run()、runMan()

运算符

算术运算符

二元运算符

// 二元运算符
int a = 10;
int b = 20;
int c = 25;
int d = 25;

System.out.println(a+b); //30
System.out.println(a-b); //-10
System.out.println(a*b); //200
System.out.println(a/b); //0

System.out.println(a/(double)b); //0.5

在这里插入图片描述
不同数据类型运算自动转换为容量大的数据类型,但最小转转为Int

long a = 123123123123123L;
int b = 123;
short c = 10;
byte d = 8;

System.out.println(a+b+c+d); //Long
System.out.println(b+c+d); //Int
System.out.println(c+d); //Int

在这里插入图片描述

一元运算符

自增:++

自减:–

int a = 3;

int b = a++; //执行代码后,先给b赋值,再自增
//a++  a = a + 1
System.out.println(a); //4
//a++  a = a + 1
int c = ++a; //执行代码后,先自增,再给b赋值

System.out.println(a); //5
System.out.println(a); //5
System.out.println(b); //3
System.out.println(b); //3
System.out.println(c); //5
System.out.println(c); //5

在这里插入图片描述

关系运算符

关系运算符返回结果为布尔值,即true或false

int a = 10;
int b = 20;
int c = 21;

//模运算
System.out.println(c%a); //1
System.out.println(a>b); //false
System.out.println(a<b); //true
System.out.println(a==b); //false
System.out.println(a!=b); //true

在这里插入图片描述

逻辑运算符

与(and) 或(or) 非(取反)

  • 逻辑与运算:两个变量都为真,结果才为true
  • 逻辑或运算:两个变量有一个为真,则结果为true
  • 逻辑非运算:如果为真,则变为假,如果为假则变为真
boolean a = true;
boolean b = false;

System.out.println("a && b: "+(a&&b)); //false
System.out.println("a || b: "+(a||b)); //true
System.out.println("!(a && b): "+!(a&&b)); //true

在这里插入图片描述

短路运算

int c = 5;
boolean d = (c<4)&&(c++<4); //没有执行(c++<4)
System.out.println(d); //false
System.out.println(c); //5

boolean e = (c>4)||(c++<4); //没有执行(c++<4)
System.out.println(e); //false
System.out.println(c); //5

在这里插入图片描述

位运算符

A = 0011 1100
B = 0000 1101

A&B = 0000 1100
A||B = 0011 1101
A^B = 0011 0001
~B = 1111 0010

扩展:怎么运算2*8最快

/*

0000 0000     0
0000 0001     1
0000 0010     2
0000 0011     3
0000 0100     4
0000 1000     8
0001 0000     16
*/
//移位操作
System.out.println(2<<3); //2*8=16

在这里插入图片描述

运算符拓展

public static void main(String[] args) {
    int a = 10;
    int b = 20;

    a+=b; //a = a+b
    a-=b; //a = a-b

    System.out.println(a); //10
    System.out.println(a+b); //30
}

在这里插入图片描述

字符串连接符

public static void main(String[] args) {
    int a = 10;
    int b = 20;

    //字符串连接符  +  ,String
    System.out.println(""+a+b); //1020
    System.out.println(a+b+""); //30
}

在这里插入图片描述

三元运算符

x ? y : z

如果为x==true,则结果为y,否则为z

public static void main(String[] args) {
    int score = 80;

    String type = score<60?"不及格":"及格";
    System.out.println(type); //及格

}

在这里插入图片描述

运算符优先级

包机制

本质为文件夹

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

package com.yuki.operator; //包名
import com.yuki.base.Deom02; //导入包
import com.yuki.base.*; //导入该包下所有的类 通配符
package com.yuki.base;

//类注释
/**
 * @author Yuki
 * @version 1.0
 * @since 1.8
 */
public class Doc {
    String name;

    //方法注释
    /**
     * @author Yuki
     * @param name
     * @return
     * @throws Exception
     */
    public String test(String name) throws Exception{
        return name;
    }

    //通过命令行
    //通过IDEA生成JavaDoc文档!
}

通过命令行生成JavaDoc文档:

  1. 打开需要生产类文档的文件目录
  2. 在该文件夹下进入命令行窗口
  3. 输入
    javadoc -encoding UTF-8 -charset UTF-8 Doc.java
    
    即可生成Doc.java的JavaDoc帮助文档
  4. 点击index.html即可在浏览器中查看

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值