Java基础语法(注释、标识符、数据类型、变量常量、命名规范)

基础语法

注释

单行注释

用两个//即可

多行注释

/*
我是多行注释
我是多行注释
我是多行注释
我是多行注释
 */

文档注释

/** */

标识符

包括类名 变量名 以及方法名 都被称为标识符

标识符只能以字母 美元符下划线 开头,不能以数字

标识符为字母下划线美元符以及数字的组合

注意:

  • 大小写敏感

  • 不能用关键字用作关键字

  • 数字、字母大小写、美元符、下划线

数据类型

java c++ 等 强类型语言,要求使用严格符合规定,所有变量都必须先定义后才能使用

string (S为大写)用于定义字符串变量,int用于定义整型变量,分号结尾

基本类型

数值类型

  • 整数类型

    byte 占1个字节 可表示:-128~127

    short 占2个字节 可表示:-32768~32767

    int 占4个字节 可表示:-2147483648~-2147483647

    long 占8个字节 可表示:-9223372036854775808-9223372036854775807

    小注意事项:在数据后面尽量加L而不加l,小写容易被认成数字1

  • 浮点类型

    float 占 4 个字节

    double 占 8 个字节

  • 字符类型

    char 占2个字节

Boolean类型

占1位 其值只有true和false两个

引用类型

类 接口 数组

拓展

整数拓展

进制 二进制 0b 八进制0 十六进制0x

了解转换方法

int i = 10;
int i2 = 010;   //八进制0
int i3 = 0x10;  //十六进制 0x
​
接果
10
8
16

浮点数拓展

银行业务?

!!!!!!!!!!!!!!!!!!!!!!!!

最好完全避免使用浮点数进行比较!!

//===============================================================================
//浮点数拓展?
//float 有限 离散 舍入误差 大约 接近但不等于
//===============================================================================
​
float f = 0.1f;
double d = 1.0/10;
​
System.out.println(f==d);
System.out.println(f);
System.out.println(d);
​
​
结果
false
0.1
0.1
​

字符串拓展

//字符拓展?
​
char c1 = 'a';
char c2 = '中';
​
System.out.println((int)c1);
System.out.println((int)c2);
​
// 强制转换
  • 强制转化

  • 所有的字符本质还是数字

  • 编码 Unicode ASCII码 0~65536 2字节

char c3 = '\u0061';
System.out.println(c3); //a

转义字符

\t table 字表符

\n 换行

涉及底层的拓展

//关于底层的拓展
System.out.println("===========================================");
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb);
​
String sc = "hello world";
String sd = "hello world" ;
System.out.println(sc==sd);
​
结果
===========================================
false
true

布尔值拓展

//布尔值拓展
boolean flag = true;
if (flag==true){}     //新手
if (flag){}           //老手

类型转换

低----------------------------------------------------->高

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

低到高 自动转换

高到低 强制转换

public class demo4 {
    public static void main(String[] args) {
        int i =128 ;
        byte b = (byte)i;  //内存溢出
​
​
        System.out.println(i); //128
        System.out.println(b); //一个负数,发生了溢出
​
        //强制转换   (类型)变量名 高-低
        //自动转换    低-高
        /*
        注意点:
        1.不能对布尔值进行转换
        2.不能把对象类型 转换为不相干的类型
        3.在高容量转换到低容量的时候,强制转换
        4.转换的时候可能存在内存溢出问题,或者精度问题
         */
​
        System.out.println("=================");
        System.out.println((int)23.7);       //double类型  23
        System.out.println((int)-45.89f);    //float类型   -45
​
​
        char c = 'a';
        int d= c+1;    //自动转换
        System.out.println(d); //98
        System.out.println((char)d);  //强制转换 b
​
    }
}
System.out.println("===============================");
int money = 10_0000_0000;
int years = 20;
int total = money*years;
System.out.println(total); //输出-1474836480,200亿不在int可表示的范围内(21亿左右),发生溢出
//如进行一下修改?
long total2 = money*years;  
//money*years其实也为int类型,在乘法结束时,已经发生了溢出,其值已为-1474836480
System.out.println(total2);//仍然输出-1474836480,
​
//解决方案
long total3 = money*((long)years);   //int类型与long类型相乘时,得到long类型
System.out.println(total3);

变量

可以变化的量

Java是一种强类型语言,每个变量都必须声明其类型;

Java变量是程序中最基本的储存单元,其要素包括变量名,变量类型和作用域

type varName [=value];

变量作用域

  • 类变量

  • 实例变量

  • 局部变量

public class demo08 {
​
    //类变量 static 从属于类
    static double salary = 2500;
​
    //属性:变量
​
    //实例变量:从属于对象,如果不自行初始化,这个类型的默认值 0 或 0.0
    //布尔值:默认是false
    //除了基本类型,其余的默认值都是null;
​
​
    String name ;
    int age ;
​
    //main 方法
    public static void main(String[] args) {
​
        //局部变量:必须声明和初始化值
        int i =10 ;
        System.out.println(i);
​
​
        //
        demo08 Demo08 = new demo08();
        System.out.println(Demo08.age);
        System.out.println(Demo08.name);
​
        //类变量 static
        System.out.println(salary);
​
    }
​
​
​
    //其他方法
    public void add(){
​
    }
}

常量

final

public class demo09 {
​
    //final 为修饰符 在static前后均可
    final static double PI = 3.14;
​
    public static void main(String[] args) {
        System.out.println(PI);
    }
}

量的命名规范

  • 见名知义

  • 类成员变量、局部变量、方法名:驼峰原则 首字母小写 后面单词首字母大写

  • 类名:每个单词首字母都大写

  • 常量:全大写与下划线

运算符

  • 算数:+, - ,* , / ,%, ++ ,--

  • 赋值:=

  • 关系:> , < ,==,!=

  • 逻辑:&& , ||, ! 与,或,非

  • 位运算符:&,|,^, ~,>>,<<,>>> (了解)

  • 条件:?:

  • 拓展赋值:+=,-=,*=,/=

算数运算符

自增与自减

//一元运算符: ++ -- 自增自减    a++,++a 执行时间不同
int a = 3;
​
int b = a ++;   //执行这行代码后,先给b赋值(将a的值赋给b),a再自增
//a++ 表示 a=a+1 在赋值后进行
System.out.println(a);
​
// a=a+1 在赋值前进行
int c = ++a;   //执行这行代码前,先自增,再给c赋值
​
System.out.println(a);
System.out.println(b);
System.out.println(c);
​
输出结果
4
5
3
5

逻辑运算符

boolean a = true;
boolean b = false;
​
System.out.println("a&&b:"+(a&&b));       //与,and
System.out.println("a||b:"+(a||b));       //或,or
System.out.println("!(a&&b):"+!(a&&b));   //非,not
​
//短路运算
//a&&b 若a为假,直接返回假,不执行&&运算符及其后面语句
//短路运算测试
int c = 5 ;
boolean d = (c<4)&&(c++<4);   //判断c<4,即为假,后面若继续执行,c将执行自增变为6,但结果为6,说明未自增,即未执行
​
System.out.println(c);
System.out.println(d);
​
​
结果
a&&b:false
a||b:true
!(a&&b):true
5 
false

位运算符

/*
A = 0011 1100
B = 0000 1101
​
A&B = 0000 1100  #位置对应相乘,有0即为0,无0为1
A|B = 0011 1101  #有1即为1,其余为0
A^B = 0011 0001  #相同为0,相反为1 异或
~B  = 1111 0010  #与B相反
   */
​
/*左移右移相关问题
<<  表示*2
>>  表示/2
​
0000 0000    0
0000 0001    1
0000 0010    2
0000 0100    4
0000 1000    8
0001 0000    16
​
一道算法题!
求2*8的最快求法
= 2*2*2*2
​
 */
System.out.println(2<<3);

拓展运算符以及字符串连接

int a = 10;
int b = 20;
​
a+=b;  //即为a=a+b
​
System.out.println(a);
​
//字符串连接符   +, String
System.out.println(""+a+b);    //""在前面,后面的a,b均变为字符串连接
System.out.println(a+b+"");    //""在后面,先运算 a+b
System.out.println(a+""+b);    //""在后面,先运算 a+b
​
结果
30
3020
50
3020
​

三元运算符

public class demo8 {
    public static void main(String[] args) {
        // x ? y :z
        // 如果x==true,则结果为y,否则结果为z
        int score = 80 ;
        String type = score < 60 ? "不及格":"及格";     // 必须掌握
        System.out.println(type);
    }
}

优先级

多使用()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值