Java基础语法(java认证考试)

注释,标识符,关键字

注释

(平时写代码一定注意规范)
Java中的注释有三种
  1. 单行注释
public class HelloWorld{
    public static void main(String[] args){
        //输出一个Heller,World!   ----单行注释
        System.out.println("Hello,World!");
        
    
    }
}

2.多行注释

/*

*/

3文档注释

标识符:

java的所有组成部分都需要名字.类名,变量名以及方法名都被成为标识符

关键字

abstract

assert

boolean

break

byte

case

catch

char

class

const

continue

default

do

double

else

enum

extends

final

finally

float

for

goto

if

implements

import

instanceof

int

interface

long

native

new

package

private

protected

public

return

strictfp

short

static

super

switch

synchronized

this

throw

throws

transient

try

void

volatile

while

注意点:

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

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

●不能使用关键字作为变量名或方法名。

●标识符是***大小写敏感***的

合法标识符举例:age、$ salary、 ivalue、1vaue

●非法标识符举例:123abc、- salary、#abc

●可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low

public static void main(String[] args)t

String王者荣耀=“最强王者";

System. out, println(王者荣耀);

数据类型

强类型语言

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

弱类型语言

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

◆基本类型

数值类型:

整数类型:

  1. byte
  2. short
  3. int
  4. long 数字后面加L

浮点类型:

  1. float 数字后面加F
  2. double

boolean类型:

占一位其值只有ture和flase两个

◆引用类型
  1. 接口
  2. 数组
public class Demo2 {
    public static void main(String[] args) {
        //八大数据类型:

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

        //2.小数:浮点数
        float num5 = 50.1F;//float类型需要数字后面加F
        double num6 = 3.1415926;

        //3.字符
        char name = '中';//只有一个字,占两个字节

        // 4.布尔值
        boolean flag= true;
          //boolean flag = false;


    }
}
◆扩展(面试内容):
public class Demo3 {
    public static void main(String[] args) {
        //二进制 0b    十进制     八进制 0    十六进制 0x
        int i=10;
        int i2 =010;//八进制0
        int i3 = 0x10;//十六进制0x
        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("====================================");
//=====================================================
     //浮点数扩展     银行业务怎么表示? 钱
     //float :有限 离散  舍入误差  大约  接近但不等于
        // double
        //最好完全使用浮点数进行比较
        float f= 0.1f;
        double d = 1.0/1.0;
        System.out.println(f==d);//结果是错误,不相等

        //================================================
        //字符拓展
        System.out.println("===================================");
        char c1 ='a';
        char c2 = '中';
        System.out.println(c1);
        System.out.println((int)c1);//强制转换
        System.out.println(c2);
        System.out.println((int)c2);//强制转换
    //所有的字符本质还是数字
        //编码 Unicode 表 :(97 = a   65 = A) 2字节
        char c3 ='\u0061';
        System.out.println(c3);

    //  转义字符
    //  \t   制表符
    //  \n   换行
    //还有很多
    System.out.println("hello\tword");
        System.out.println("hello\nword");

    }
}

类型转换

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

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

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

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

强制转换

自动转换

public class Demo4 {
    public static void main(String[] args) {
        int i = 128;
        double b = i; //自动转换  低---高
        byte c = (byte) i; //强制转化   (类型)变量名

        System.out.println(b);
        /*
        注意点:
        1.不能对布尔值进行转化
        2.不能把对象类型转换为不相干的类型
        3.在把高熔炼转换到低容量的时候,强制转换.
        4.转换的时候可能存在内存溢出,或者精度问题!
         */
        System.out.println("=====================");
        System.out.println((int)23.7);
        System.out.println((int)-45.89f);

        System.out.println("=====================");
        char d ='a';
        int e = d+1;
        System.out.println(e);
        System.out.println((char)e);
        System.out.println("=====================");

        //操作比较大的数的时候,注意溢出问题
        int money = 10_0000_0000;   //JDK新特性,数字之间可以用下划线
        int years = 20;
        int total = money * years; //  -1474836480  ,计算的时候溢出了
        long total2 = ((long)money)*years;
        System.out.println(total2);//先把一个属转换为long


    }
}

变量,常量

◆变量是什么"?"

就是可以变化的量!

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

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

type varName  [=value] [{,varName[=value]}];
//数据类型   变量名=值;可以使用逗号隔开来声明多个同类型变量
public class Demo5 {
    public static void main(String[] args) {
        int a=1;
        int b=2;
        int c=3;
        String name ="hanhan";
        char x = 'X';
        double pi = 3.14;
    }
}

◆注意事项:

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

public class Demo6 {
    //类变量   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);

        //变量类型   变量名字  = new Demo6();
        Demo6 demo6 = new Demo6();
        System.out.println(demo6.age);
        System.out.println(demo6.name);

        //类变量   static
        System.out.println(salary);
    }

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

    }
}

常量:

◆常量( Constant):初始化( initialize)后不能再改变值!不会变动的值
◆所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
◆常量名一般使用大写字符。

final 常量名 =值;
final double PI = 3.14;
public class Demo7 {
// final static double PI = 3.14;也是可以的.
    //修饰符,不存在先后顺序.
    static final double PI = 3.14;

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

变量的命名规范:

◆所有变量、方法、类名:见名知意
◆类成员变量:首字母小写和驼峰原则: monthSalary 除了第一个单词以外,后面的单词首字母大写: lastname
◆局部变量:首字母小写和驼峰原则
◆常量:大写字母和下划线: MAX _VALUE
◆类名:首字母大写和驼峰原则:Man, GoodMan
◆方法名:首字母小写和驼峰原则:run(), runRun())

运算符

◆Java语言支持如下运算符:

·算术运算符:+,-,* ,/,%,++,–
·赋值运算符 =
·关系运算符:>,<,>=,<=,==,!= instanceof
·逻辑运算符:&&,||, !
位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
条件运算符?:
扩展赋值运算符:+=,-=,* *=,/=

◆自增自减:

package operator;

public class Demo2 {
    public static void main(String[] args) {
        //++  --  自增  自减   一元运算符

        int a = 3;
        int b = a++;//  a++逻辑为执行完这行代码后.先给b赋值,然后a再自增. 因此b为3,也就是初始值a.

        System.out.println(a); //结果为4
        // 在执行完后,a=a+1;  a=4;继续运行下一个
        int c = ++a; //++a 逻辑为执行完这行代码前,a先进行自增,然后再给c赋值,此时a=4+1=5,c=5.
        System.out.println(a);//结果:5
        System.out.println(b);//结果:3
        System.out.println(c);// 结果:5

    }
}

幂运算 使用工具类

//幂运算  .. 很多的运算需要使用一些工具类来操作
        double pow = Math.pow(2,3);
        System.out.println(pow);
//这个就是2的三次方

逻辑运算符

package operator;

public class Demo3 {
    public static void main(String[] args) {
        //逻辑运算符
        //  与(and)(&&)  或(or)(||)    非(取反)(!(a&&b))
        boolean a = true;
        boolean b = false;
        System.out.println(a&&b); //逻辑与运算:两个变量都为真,结果才为true.
        //在进行 与 操作时,会有逻辑顺序,a&&b,会先检验a,如果a错误,不会执行b.用短路运算来证明一下.
        System.out.println(a||b);//逻辑或运算:两个变量有一个为真,结果为true
        System.out.println(!(a&&b));//如果是真,则变为假;如果为假,则变为真.
     //短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
        System.out.println(d);//结果为错
        System.out.println(c);//c为5, 因为前面c<4错误,因此不会运行c++,c的值也就不会变化.
    }
}

位运算符

package operator;
//位运算符
public class Demo4 {
    public static void main(String[] args) {
/*
A =    0011 1100
B =    0000 1101
------------------------------------------------------
A & B  0000 1100    //与: 都为1,才是1.不然为0
A | B  0011 1101    //或:有一个为1,就是1,其余为0
A ^ B  0011 0001   //亦或  :如果值相同为0,不同为1
~ B    1111 0010
-----------------------------------------------------
面试题2 * 8 怎么算最快
<< 左移 :相当于*2
>>  右移:相当于/2
!!!!效率极高
 */
        System.out.println(2<<3);//结果为16
        System.out.println(-20>>2);//结果为-5
        System.out.println(-20<<2);//结果为-80
    }
}
知识点:
package operator;

public class Demo5 {
    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);
        //字符串连接符
        System.out.println(a+b);
        System.out.println(""+a+b);//结果为: 1020   只要前面开头出现字符串类型,则会转换成字符串连接,
        System.out.println(a+b+"");//结果为:30
    }
}

三元运算符

package operator;
//三元运算符
public class Demo6 {
    public static void main(String[] args) {
        // x? y:z
        //如果x==true,则结果为y,负责结果为z
        int score = 80;
         String type = score <60?"不及格":"及格";
        System.out.println(type);//结果为:及格
    }
}

包机制,JavaDoc

包机制

2

◆为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
◆包语句的语法格式为:
package pkg1[. pkg2[. pkg3…];
◆一般利用公司域名倒置作为包名
◆为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用" import"语句可
完成此功能
import package1[.package2…] .(classname| *);

JavaDoc

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

◆参数信息
◆@ author作者名
◆@ version版本号
◆@ since指明需要最早使用的jdk版本
◆@ paran参数名
◆@ return返回值情况
◆@ throws异常抛出情况

ring type = score <60?“不及格”:“及格”;
 System.out.println(type);//结果为:及格
 }
 }## 包机制,JavaDoc

### 包机制

2

◆为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
◆包语句的语法格式为:
package pkg1[. pkg2[. pkg3....];
◆一般利用公司域名倒置作为包名
◆为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用" import"语句可
完成此功能
import package1[.package2...] .(classname| *);



### JavaDoc

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

◆参数信息
 ◆@ author作者名
 ◆@ version版本号
 ◆@ since指明需要最早使用的jdk版本
 ◆@ paran参数名
 ◆@ return返回值情况
 ◆@ throws异常抛出情况