Java基础语法(小狂神笔记)

Java基础语法

一、注释、标识符、关键字

  • 注释

    注释是给人看的,书写注释是一个非常好的习惯,平时写代码一定要规范

    单行注释:注释一行文字

    //

    多行注释:注释一段文字

    /* */

    文档注释

    /** */

  • 标识符

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

  •  

  • 关键字

     

二、数据类型

1.强类型语言(java)

要求变量的使用严格符合规定,所有的变量都必须先定义后才能使用

2.弱类型语言(js:JavaScript)

3.java数据类型

1.基本类型

基本数据类型(primitive type)

 

数值类型

整数类型

byte 占一个字节(-127~+127)

short 占两个字节

int 占四个字节

long 占八个字节

浮点类型

float 占四个字节

double 占八个字节

字符类型

char 占2个字节

布尔类型(ture和false)

boolean 占一位

2.引用类型

引用数据类型(reference type)

类、接口、数组

 

4.浮点数拓展

最好完全使用浮点数(double)进行比较

float是字长是有限的 离散的,存在舍入误差的,是个大约, 它接近但不等于

银行业务使用BigDecimal(数学工具类)

 //浮点型数据
 //最好完全使用浮点数(double)进行比较
 //float是字长是有限的 离散的,存在舍入误差的,是个大约, 它接近但不等于
 //==========================================
        float i5 = 0.1f;        //0.1
        double i6 = 1.0/10;       //0.1
        System.out.println(i5==i6);
        System.out.println(i5);
        System.out.println(i6);
        System.out.println("=========================================");
        float i7 = 122349898786f;
        double i8 = i7 + 1;
        System.out.println(i7==i8);

5.字符拓展

所有的字符本质还是数字

运行代码:
        char a1 = 'a';
        char a2 = '中';
        System.out.println(a1);
        System.out.println((int)a1); //强制转换
        System.out.println(a2);
        System.out.println((int)a2); //强制转换
输出结果为:
a
97
中
20013

Unicode编码 0-65536(U0000-UFFFF)

2个字节

.xls:65536行

6.转义字符扩展

\t 制表符

\n 换行

7.字符串扩展

运行代码:
        String b1 = new String("aaa");
        String b2 = new String("aaa");
        System.out.println(b1==b2);  
        String b3 = "aaa";
        String b4 = "aaa";
        System.out.println(b3==b4); 
运行结果:
        false
        ture

8.boolean扩展

boolean flag = true
//以下两行是同一句代码
if(flag == true){}
if(flag){}

三、类型转换

1.强制类型转换(高->低)

强制转换:(类型)变量名 高-->低
运行代码:
        int i = 128;
        byte b = (byte)i;
        System.out.println(i);
        System.out.println(b);
运行结果:
128
-128
原因:强制转换,内存溢出

2.自动类型转换(低-->高)

自动转换:低-->高
运行代码:
        int i = 128;
        double bo = i;
        System.out.println(i);
        System.out.println(bo);
运行结果:
128
128.0

3.注意点

1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,需强制转换
4.转换的时候可能存证内存溢出,或者精度问题
精度问题:
运行代码:
        System.out.println((int)23.7);
        System.out.println((int)-58.59f);
运行结果:
23
-58
自动类型转换
运行代码:
        char c = 'a';
        int d = c + 1;
        System.out.println(d);
        System.out.println((char)d);
运行结果:
98
b
溢出问题:操作比较大的时候,注意溢出问题
运行代码:
        int money = 10_0000_0000;
        int years = 20;
        int total = money*years;
        System.out.println(total);   //-1474836480 计算的时候溢出了
        long total2 = money*years;
        System.out.println(total2);  //-1474836480 默认是int,转换之前已经存在问题了
        long totla3 = money * ((long)years);  //先把一个数转为long
        System.out.println(totla3); 
运行结果:
-1474836480
-1474836480
20000000000

4.扩展

JDK新特性:数字之间比较大的时候可以用下划线分割
运行代码:
        int e = 100_00_00;
        System.out.println(e);
运行结果:
1000000
​
代码规范:
数字后面加字母“L”或者字母“l”指的是Long类型,通常来说我们使用“L",因为字母“l”我们经常把他看成是数字1。

四、变量、常量

1.变量

变量是什么? 就是可以变化的量

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

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

组成结构:
数据类型 变量名 = 值;
type name = value;
int i = 2;
char a = 'X';
double pi = 3.14;
//不建议在一行里面定义多个值,这样看起来很麻烦(程序可读性差)
多个值(不建议使用这种方式);
type name [=value][{,name[=value]}];
int f,g,h;
int f=1,g=2,h=3;

2.注意事项

  • 每个变量都有类型,类型可以是基本类型和引用类型。

  • 变量名必须是合法的标识符。

  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

    代码
    局部变量:必须声明变量和初始化值。
    代码:
             public static void main(String[] args) {
                double pi = 3.14;
                System.out.println(pi);
             }
             public void test(){
                System.out.println(pi);  //编译报错
             }
    结果:
    3.14
    实例变量:从属于对象。如果不自行初始化,输出这个类型的默认值 null、0、0.0。
    //布尔值的默认值是false。除了基本类型,其余的默认值都是null。
    运行代码:
        public class BasicGrammar {
            String name;
            int age;
            public static void main(String[] args) {
                BasicGrammar basicGrammar = new BasicGrammar();
                System.out.println(basicGrammar.age);
            }
        }
    运行结果:
    null
    0
    类变量:关键字:static
    运行代码:
        public class BasicGrammar {
            static double salary = 2500;        //工资
            public static void main(String[] args) {
                System.out.println(salary);
            }
        }
    运行结果:
    2500.0

3.程序可读性

程序可读性:让大多数人一眼就能理解明白程序的思路与用意。

4.常量

常量(Constant):初始化(initialize)以后不能改编的值!不会变动的值。

可以将常量理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

关键字:final

final 类型 常量名 = 值;
final double salary = 2500; 
运行代码:
    public class BasicGrammar {
        static final double salary = 2500;        //工资
        public static void main(String[] args) {
            System.out.println(salary);
        }
    }
运行结果:
2500.0

注意:常量名一般使用大写字符

修饰符不存在先后顺序

5.变量的命名规范

  • 所有变量、方法、类名:见名知意。

  • 类成员变量:首字母小写和驼峰原则: monthSalary局部变量:首字母小写和驼峰原则。

  • 常量:大写字母和下划线:MAX_VALUE。

  • 类名:首字母大写和驼峰原则: Man, GoodMan方法名:首字母小写和驼峰原则: run(), runRun)。

  • 方法名:首字母小写和驼峰原则: run(), runRun)。

    便于阅读

五、运算符 优先级()

1.算数运算符

算术运算符:+,-,*,l,%,++,--

算数运算符:
运行代码:
    public class operator {
    public static void main(String[] args) {
        System.out.println("===================二元运算符======================");
        //Ctrl + D : 复制当前行到下一行
        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);    //内存溢出
        long c = 5848524L;
        int d = 123;
        short e = 10;
        byte f = 8;
        System.out.println(c+d+e+f);
        System.out.println(d+e+f);
        System.out.println(e+f);
        //++ --
        System.out.println(a++);
        System.out.println(++a);
        System.out.println(a--);
        System.out.println(--a);
    }
}
运行结果:
//+ - * /:
30
-10
200
0
//不同类型相加:
5848665
141
18
//++ --:
10
12
12
10

2.赋值运算符

赋值运算符:=

3.关系运算符

关系运算符:>,<,>=,<=,==,!=, instanceof

关系运算符:返回值为布尔值:true  false
运行代码:
    public class operator {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
       //返回值为布尔值:true  false
        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);
    }
}
运行结果:
false
true
false
true

4.逻辑运算符

逻辑运算符:&&,||,!

逻辑运算符:与(&&):and,或(||):or,非(!):取反
​
运行代码:
        boolean x = true;
        boolean y = false;
        //逻辑与运算:两个变量都为真,结果才为true
        System.out.println("x && y : "+(x && y));
        //逻辑与运算:一个变量为真,结果为true
        System.out.println("x || y : "+(x || y));
        //逻辑与运算:如果为真,取反为假。如果是假,取反为真
        System.out.println("!(x && y) : "+!(x && y));
运行结果:
x && y : false
x || y : true
!(x && y) : true
​
短路运算:第一个为假,则为假
运行代码:
        int z = 5;
        System.out.println((z<4) && (++z<10));
        System.out.println(z);
运行结果:
false
5

5.位运算符

位运算符(效率极高):&,|,^,~,>>,<<,>>>(了解! ! ! )

介绍:
        A = 0011 1100
        B = 0000 1101
        A&B = 0000 1100     //如果都是1,为1,否则为0
        A|B = 0011 1101     //如果都是0,为0,否则为1
        A^B = 0011 0001     //如果都相同,为0,否则为1
        ~B = 1111 0010      //取反
        2 * 8 = 16      2*2*2*2
        效率极高!
        <<:      *2
         >>:     /2
        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);
运行结果:
16

6. 条件运算符

条件运算符:?

条件运算符:也叫三元运算符
结构 :x ? y : z
如果x == true ,结果为y,否则为z。
score : 成绩
运行代码:
        int score = 60;
        String type = score < 60 ? "不及格" : "及格";
        System.out.println(type);
运行结果:
及格

7.扩展赋值运算符

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

运行代码:
        int a = 10;
        int b = 20;
        System.out.println(a+=b);
        System.out.println(""+a+b);
        System.out.println(a+b+"");
运行结果:
10
1020
30

六、包机制

包的本质就是文件夹

  • 为了更好的组织类,java提供了包机制,用于区别类名的命名空间。

  • 包机制的语法格式为:

    package pkg1[.pkg2[.[pkg3]]]
  • 一般利用公司域名倒置作为包名。 例如:www.baidu.com 包名为:www.baidu.com

  • 为了能够使用某一个包的成员,我们需要在java程序中明确导入该包,使用“import”语句可以完成此功能。

    import package1[package2...].(classname|*);

七.JavaDoc

javadoc命令式用来生产自己aPI文档的。

参数信息:

@author 作者名
@version 版本号
@since 指明需要最早使用的jdk版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况
​
DOS命令行生成javaDoc文档:
javadoc -encoding UTF-8 -charset UTF-8 Doc.java
​
idea生成javaDoc文档:
Tools-->Generate JavaDoc-->如下图配置

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值