首页 > 编程语言 > 详细

Java基础语法

时间:2021-02-08 22:29:30      阅读:19      评论:0      收藏:0      [点我收藏+]

Java基础语法

注释

Java中的注释有三种:

  • 单行注释

    //注释内容
    
  • 多行注释

    /*
    注释内容
    */
    
  • 文档注释(和JavaDoc联合使用)

    /**  注释内容  */
    

标识符和关键字

根据“文艺梁”的博客JAVA全部关键字可知Java全部50个关键字及功能

1 abstract //抽象方法,抽象类的修饰符
2 assert //断言条件是否满足
3 boolean //布尔数据类型
4 break //跳出循环或者label代码段
5 byte //8-bit 有符号数据类型
6 case //switch语句的一个条件
7 catch //和try搭配捕捉异常信息
8 char //16-bit Unicode字符数据类型
9 class //定义类
10 const //未使用
11 continue //不执行循环体剩余部分
12 default //switch语句中的默认分支
13 do //循环语句,循环体至少会执行一次
14 double //64-bit双精度浮点数
15 else //if条件不成立时执行的分支
16 enum //枚举类型
17 extends //表示一个类是另一个类的子类
18 final //表示一个值在初始化之后就不能再改变了
//表示方法不能被重写,或者一个类不能有子类
19 finally //try 语句不管是否发生异常都要执行的语句块
20 float //32-bit单精度浮点数
21 for //for循环语句
22 goto //未使用
23 if //条件语句
24 implements //表示一个类实现了接口
25 import //导入类
26 instanceof //测试一个对象是否是某个类的实例
27 int //32位整型数
28 interface //接口,一种抽象的类型,仅有方法和常量的定义
29 long //64位整型数
30 native //表示方法用非java代码实现
31 new //创建新的类实例并分配内存
32 package //一系列相关类组成一个包
33 private //表示私有字段,或者方法等,只能从类内部访问
34 protected //表示字段只能通过类或者其子类访问
//子类或者在同一个包内的其他类
35 public //表示共有属性或者方法
36 return //方法返回值
37 short //16位数字
38 static //表示在类级别定义,所有实例共享的
39 strictfp //浮点数比较使用严格的规则
40 super //表示基类
41 switch //选择语句
42 synchronized //表示同一时间只能由一个线程访问的代码块
43 this //表示调用当前实例
//或者调用另一个构造函数
44 throw //抛出异常
45 throws //定义方法可能抛出的异常
46 transient //修饰不要序列化的字段
47 try //表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码
48 void //标记方法不返回任何值
49 volatile //标记字段可能会被多个线程同时访问,而不做同步
50 while //while循环

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

所有标识符应以字母、美元符号($)、下划线开头

首字母后可以为字母、美元符号、下划线、数字的组合

不能以关键字作为变量名或方法名

标识符大小敏感

可以中文命名,但不建议使用

数据类型

Java为强类型语言,所有变量需要先定义后使用

Java中的数据类型分为两大类

  • 基本类型
  • 引用类型

根据“刘小将”博客Java中数据类型的分类

技术分享图片

技术分享图片

数据类型拓展

进制

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

? System.out.println(....);输出的为十进制

浮点数拓展

? Java中的float浮点数类型存在舍入误差,最好完全避免使用浮点数进行比较

技术分享图片

银行业务中,可使用BigDecimal数学工具类,尽量避免浮点类型

字符拓展

强制转化可将字符转换成数字

所有字符的本质还是数字

从U0000 -- UFFFF

技术分享图片

根据"种棵西府海棠吧"博客Java中的转义字符

技术分享图片

字符串拓展

技术分享图片

类型转换

运算中,不同类型的数据先转换为同一类型,再进行运算。

转换时注意内存溢出

强制转换:高-->低

自动转换:低-->高

注意:

  1. 不能对布尔类型进行转化
  2. 不能把对象类型转换为不相干的类型
  3. 强制转换注意内存溢出精度问题
public class Demo1 {
    public static void main(String[] args) {
        System.out.println((int)-45.7f);  //精度问题
        System.out.println((int)4.5);

        System.out.println("==========================");
        char c = ‘a‘;
        int c2 = c + 1;
        System.out.println((int)c);
        System.out.println((char)c2);

        System.out.println("===========================");
        //操作比较大的数时,注意溢出问题
        //JDK7新特性,数字间可用下划线分割
        int money = 10_0000_0000;
        int years = 20;
        int total1 = money * years;
        long total2 = money * years;//默认是int,转换为long之前就存在内存溢出
        long total3 = (long)money * years;
        long total4 = money * (long)years;
        System.out.println(total1);
        System.out.println(total2);
        System.out.println(total3);
        System.out.println(total4);
    }
}

输出结果:

技术分享图片

变量、常量、作用域

变量

变量要素包括变量名、类型、作用域

type varName [=value];//数据类型 变量名 = 值
public class Var {

    //类变量,关键字为static,从属于类
    static double salary = 2500;

    //属性

    //实例变量,在类中均有效,从属于对象,若不初始化,为默认值
    //实例变量中的布尔值默认为false
    //除了基本类型,其余默认权全为ull
    String name;
    int age;

    //main方法
    public static void main(String[] args) {
        //局部变量定义在方法中,仅在该方法中有效,且需声明初始化值
        int i;
        //System.out.println(i);//出错
        //实例变量
        Var v = new Var();
        System.out.println(v.name);
        System.out.println(v.age);
        //若不实例化,则出错
        //System.out.println(age);

        //类变量输出
        System.out.println(salary);



    }

    //其他方法
    public void add(){

    }
}

常量

常量被初始化后便不可改变,常量名一般使用大写字母

final double PI = 3.14;
public class Constant {

    //修饰符不存在先后顺序,public,final,static为修饰符
    public final static double PI = 3.14;
    static final double A = 2.1;

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

变量命名规范

  • 所有变量、常量、方法名、类名做到见名知意
  • 类成员变量:首字母小写和驼峰原则
  • 局部变量:首字母小写和驼峰原则
  • 常量:全大写
  • 类名:首字母大写和驼峰原则
  • 方法名:首字母小写和驼峰原则

基本运算符

可看“浅笑微凉”的博客java编程基础(二)

自增、自减、Math类

package base;

public class Demo {
    public static void main(String[] args) {
        int a = 1;
        System.out.println(a++);//a++,先执行操作,a在自增
        System.out.println(++a);//++a,a先自增,后再执行操作

        //利用Math类
        System.out.println("=============================");
        double b = Math.pow(3, 2);
        System.out.println(b);
    }
}

技术分享图片

逻辑运算符、位运算符

逻辑运算符

与(and):&&

或(or):||

非(取反):!

运算

与运算:&

或运算:|

异或:^

取反:~

左移:<<

右移:>>

package base;

//位运算符
public class Demo2 {
    public static void main(String[] args) {
        //问题:2*8最快运算
        /*
        0000 0000    0
        0000 0010    2
        0000 0100    4
        0000 1000    8
        0001 0000    16
         */
        //位运算效率非常高
        System.out.println(2<<3);
    }
}

三元运算符

package base;

public class Demo3 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        a+=b;
        System.out.println(a);
        System.out.println(""+a+b);
        System.out.println(a+b+"");
    }
}

技术分享图片

三元运算符

x ? y : z:若x为真,则结果为y,若x为假,则结果为z

运算符优先级

根据"GavinYao"的博客java运算符优先级

技术分享图片

包机制

一般用公司域名的倒置作为包名,例com.baidu.www

关于IDEA中子包不折叠问题,可见“//承续缘_纪录片”的微博idea中创建子包不折叠

import com.a.*;

导入a下的所有类

JavaDoc生成文档

Java8在线帮助文档

通过命令行生成JavaDoc

技术分享图片

技术分享图片

利用IDEA生成JavaDoc文档

见“deniro_li”博客手把手教你使用 idea 生成漂亮的 javadoc 文档

Java基础语法

原文:https://www.cnblogs.com/sgKurisu/p/14389650.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!