Java基本语法

Java基本语法

1. 注释、标识符、关键字

1.1 注释

java中的注释有三种:

  • 单行注释
  • 多行注释
  • 文档注释

书写注释是一个非常好的习惯!

平时写代码一定要注意规范

//单行注释


/*  多
	行
	注
	释
*/

/** 
 * @Description hello world
 * 
 * 
 */

1.2 标识符

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

String name = "bob";

标识符注意点

  • 所有的标识符都应该以字母(A-Z或者a-z)、美元符($)、或者下划线(_)开始

  • 首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合

  • 不能使用关键字作为变量名或者方法名

  • 标识符是大小写敏感的

  • 合法标识符举例:age,$salary,_value,__1_value

  • 非法标识符举例:123abc,-salary,#abc

    public static void main(String[] args){
        String 王者荣耀 = "最强王者";
        System.out.println(王者荣耀);
       
    }
    
  • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很low

1.3 关键字

2. 数据类型

强类型语言

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

弱类型语言

Java的数据类型分为两大类

  • 基本类型

    整数类型:

    ​ byte占一个字节范围:-128-127

    ​ short占两个字节范围:-32768-32767

    ​ int占四个字节范围:-2147483648-2147483647

    ​ long占8个字节范围

    浮点类型:

    ​ float占4个字节范围

    ​ double占8个字节范围

    字符类型char占两个字节

    布尔型boolean占1位只有true或者false

  • 引用类型

2.1 基本类型

//整数

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

//小数:浮点数

float num5 = 50.1F;//float类型要在数字后面加个F
double num6 = 3.14;

//字符

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

String name = "兔子";

//布尔值

boolean flag = true;
boolean flag = false;

位 (bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数。

字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示,

​ 1B = 8bit

字符:是指计算机中使用的字母、数字、字和符号

1bit表示1位

1Byte表示一个字节1B=8b

1024B = 1KB

1024KB = 1M

1024M = 1G

2.2 数据类型拓展

2.2.1 整数拓展

进制:二进制0b开头 ,十进制,八进制0开头,十六进制0x开头

int i =10;
int i2 = 010;//八进制0开头
int i3 = 0x10;//十六进制0x开头

2.2.2 浮点数拓展

浮点数有限且离散,存在舍入误差即接近但不等于。

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

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

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

使用BigDecimal数学工具类

2.2.3 字符拓展

char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println(c2);
System.out.println((int)c1);
System.out.println((int)c2);

所有的字符本质还是数字

Unicode编码大小两个字节: 0-65536

char c3 = '\u0061';

2.2.4 转义字符

\t 制表符

\n 换行符

····

转义字符 意义 ASCII码值(十进制)
\b 退格(BS) ,将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF) ,将当前位置移到下一行开头 010
\r 回车(CR) ,将当前位置移到本行开头 013
\t 水平制表(HT) (跳到下一个TAB位置) 009
\v 垂直制表(VT) 011
\ 代表一个反斜线字符''' 092
' 代表一个单引号(撇号)字符 039
" 代表一个双引号字符 034
\0 空字符(NULL) 000
\ddd 1到3位八进制数所代表的任意字符 三位八进制
\uhhhh 1到2位十六进制所代表的任意字符 二位十六进制

2.2.5 布尔值拓展

boolean flag = true;
if(flag){};
if(flag==true){};//这两个意思一样  Less is More! 代码要精简易读。

2.3 类型转换

由于Java是强类型语言,所以进行有些运算的时候,需要用到类型转换。

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

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

运算中,不同类型的数据先转化为同一类型,然后进行运算。

2.3.1 强制类型转换

(类型)变量名 高 --> 低

注意点:

  1. 不能对布尔进行转换。

  2. 不能把对象类型转换为不相干的类型。

  3. 在把高容量转换到低容量的时候,强制转换。反之自动转换。

  4. 强制转换的时候可能存在内存溢出问题,或精度问题。

    System.out.println((int)23.7); //23
    System.out.println((int)-45.89f);//-45
    

操作比较大的数时,要注意溢出问题。

int money = 10_0000_0000;
int years = 20;
int total = money*years;
System.out.println(total); // -1474836480,发生了溢出

long total2 = money*years;//默认是int,转换之前就已经发生了溢出
long total3 = money*((long)years);//正确输出20000000000

2.3.2 自动类型转换

低 --> 高

3. 变量、常量、作用域

3.1 变量

变量是什么:就是可以变化的量。

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

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

type varName [=value] [{,varName[=value]}];
//数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型变量。

注意事项

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

变量作用域

  • 类变量

  • 实例变量:从属于对象。如果不自行初始化,则为这个类型的默认值。布尔值默认是false。除了基本类型,其余类型默认值都是null。

  • 局部变量:必须声明和初始化值。

    public class Variable{
        static int allClicks = 0; //类变量
        String str = "hello world"; //实例变量
        
        public void method(){
            int i = 0; //局部变量
        }
    }
    
    public class Demo{
        //属性:变量
        
        //类变量static
        
        static double salary = 2500;
        
        //实例变量:从属于对象
        
        String name;
        int age;
        
        public static void main(String[] args){
            
            //局部变量:必须声明和初始化值
            int i = 10;
            System.out.println(i);
            
            //变量类型  变量名族 = new Demo();
            Demo demo = new Demo();
            System.out.println(demo.age);
            System.out.println(salary);
        }
        
        //其他方法
        public void add(){
            
        }
    }
    

    变量的命名规范

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

  • 类成员变量:首字母小写和驼峰原则:monthSalary,除了第一个单词以外,后面的单词首字母大写

  • 局部变量:首字母小写和驼峰原则

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

  • 类名:首字母大写和驼峰原则:Man,GoodMan

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

3.2 常量

  • 常量:初始化后不能再改变的值!不会变动的值。

  • 所谓常量可以理解为一种特殊的变量,他的值被设定后,在程序的运行过程中不允许被改变。

final 常量名 = 值;
final double PI = 3.14;
  • 常量名一般使用大写字符

static修饰符不存在先后顺序

static final double PI = 3.14;
final static double PI = 3.14;

4. 运算符

Java语言支持如下运算符:

  • 算术运算符:+,-,*,/,%,++,--
  • 赋值运算符:=
  • 关系运算符:>,<,>=,<=,==,!=,instanceof 返回true或者false
  • 逻辑运算符:&&,||,!
  • 位运算符:&,|,^,~,>>,<<.>>>
  • 条件运算符:?:
  • 拓展赋值运算符:+=,-=,*=,/=
long a = 122313123131313L;
int b = 123;
short c = 10;
byte d = 8;

System.out.println(a+b+c+d);  //Long 只要操作数存在long,结果就是long,否则都为int,同理有一个double就为double
System.out.println(b+c+d);    //int
System.out.println(c+d);      //int 

4.1自增自减运算

public class Demo{
    public static void main(String[] args){
        // ++ -- 自增,自减   一元运算符
        
        int a = 3;
        int b = a++;//先给b赋值,再自增
        int c = ++a;//先自增,再给c赋值
        
        System.out.println(a);//5
        System.out.println(b);//3
        System.out.println(c);//5
    }
}

幂运算

2^3

int a = Math.pow(2,3);

4.2 逻辑运算符、位运算符

boolean a = true;
boolean b = false;

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

//短路运算

int c = 5;
boolean d = (c<4)&&(c++<10); //c<4为false之后,后面的就没有执行了
System.out.println(d);  //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 = 16 2* * 2 * 2 * 2

<< 左移 移动一次乘以二 >>右移 移动一次除以二

4.3 拓展运算符

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

//字符串连接符 +
System.out.println(""+a+b);//只要非结尾出现一个String就会把其他的都转换成String再进行连接。

int a = 10;
int b = 20;
System.out.println(""+a+b); //1020
System.out.println(a+""+b);  //1020
System.out.println(a+b+"");  //30

4.4 三元运算符

x ? y : z

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

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

5. 包机制

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

  • 包语句的语法格式为:

    package pkg1[. pkg2[. pkg3...]];
    
  • 一般利用公司域名倒置作为包名;

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

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

6. JavaDoc生成文档

  • javadoc命令是用来生成自己API文档的

  • 参数信息

    • @author 作者名

    • @version 版本号

    • @since指明需要最早使用的jdk版本

    • @param 参数名

    • @return 返回值情况

    • @throws 异常抛出情况

      package com.bo.www;
      
      /**
       * @author Tohka
       * @version 1.0
       * @since 1.8
       */
      
      public class Study {
          String name;
      
          /**
           * @author Tohka
           * @param name
           * @return String
           * @throws Exception
           */
      
          public String test(String name) throws Exception{
              return name;
          }
      }
      

面向百度编程!

第一步:在工具栏中找到 Tool,然后再子菜单中找到 Generate JavaDoc。

第二步:在生成文档上进行配置。

配置的简单介绍:

参数说明

1.Whole project:整个项目都生成文档

2.Custom scope 自定义范围。如下:

(1)project files 项目文件,

(2)project production files 项目产品文件,

(3)project test files 项目的测试文件, 未知范围,class hierarchy 类层

3.include test source 包含测试目录

4.include JDK and … 包含jdk和其他的第三方jar

5.link to JDK documentation…链接到JDK api

6.output directy 生成的文档存放的位置

(1)private、package、protected、public 生成文档的级别(类和方法)

(2)右边的Generate…是选择生成的文档包含的内容,层级树、导航、索引..

(3)再右边是生成的文档包含的内容信息,作者版本等信息

7.Locale 语言类型,zh-CN

8.Other command line arguments 其他参数

9.Maximum heep… 最大堆栈

posted @ 2021-03-12 21:40  Tomato12138  阅读(35)  评论(0编辑  收藏  举报