JavaSE的基础内容

JavaSE基础内容

Java的注释

public class Helloworld {
    public static void main(String[] args) {
        System.out.println("hellowprld");
        //输出一个Hellowprld
        /*我是多行注释


         */
        /**
         *
         * 我是文档注释
         */
    }
}

标识符

public class Demo01 {
    public static void main(String[] args) {
        String Alloh="dhij";
        String hello="jdgh";
        String _dja="ugd";
        String 1hauf="bhuf";
        String #jfbhg="gy";//错误
        String class=" b";//错误
    }
}

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

所有标识符都应该以字母,美元符($)下划线(_)开头

首字符之后可以是字母,美元符,下划线,或者任意数字的组合

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

标识符是大小学敏感的

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

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

可以使用中文命名,但一般不这么做

数据类型

强类型语言:要求变量的使用必须要严格符合规定,所有变量必须先定义在使用

弱类型语言:可不符合规定,如JavaScript

Java数据类型俩大类:

  • 基本类型
  • 引用类型

基本类型:

数值类型:整数类型,byte,short,int long

​ 浮点数类型:float,double

​ 字符类型char:俩个字节

boolean:占一位字节,值只有true和false

public class Demo02 {
    public static void main(String[] args) {
       // String a=10;//string是字符串,但是10是int型
        String a="hello";
        int num=10;
        System.out.println(a);
        System.out.println(num);
        //整数四种表示方式
        int num1=10;
        byte num2=20;
        short num3=30;
        long num4=244891l;//long类型的数字后面要加l
        //浮点型表示
        float num5=24.32478F;//float类型后加F
        double num6=3.1415926;
        //字符
        char name='A';
        //string不是关键字,类
        String name1="qingjiang";
        //bool值
        boolean flag=true;
        boolean flag2=false;
    }
}

引用类型:

类,接口,数组

扩展内容

public class Demo03 {
    public static void main(String[] args) {
        //整数拓展 : 进制   二进制0b  十进制   八进制0    十六进制0x
        int i=10;
        int i1=010;//八进制
        int i3=0x10;//十六进制
        System.out.println(i);
        System.out.println(i1);
        System.out.println(i3);
        System.out.println("===========================================");
        //===================================================
        //浮点数扩展        银行业务
        //BigDecimal 数学工具类
        //===================================================
        //float   有限 离散 舍入误差 大约 接近但不相等
        //double
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较
        float f=0.1f;
        double d=0.1;
        System.out.println(f==d);
        System.out.println(f);
        System.out.println(d);
        float d1=231231231231231f;
        float d2=d1+1;
        System.out.println(d1==d2);
        System.out.println(d1);
        System.out.println(d2);
        System.out.println("================================================");
        //====================================================================
        //字符拓展
        //===================================================================
        char a='a';
        char a1='中';
        System.out.println(a);
        System.out.println((int)a);//强制转化
        System.out.println(a1);
        System.out.println((int)a1);//强制转换
        //所有的字符本质还是数字
        //编码   Unicode 表:(a 97 A 65)  2字节  0-65536   Excel  2 16=65536
        //u0000 Uffff
        char a2='\u0061';
        System.out.println(a2);

        //转义字符
        //\t  制表符
        //\n  换行
        System.out.println("hello\nworld");

        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);
        //对象 从内存分析
        
        //布尔值扩展
        boolean flag=true;
        if(flag==true)//if(flag)意思相同
        {
            
        }
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vRHRbgrS-1645616370175)(C:\Users\tangz\AppData\Roaming\Typora\typora-user-images\image-20220223152126980.png)]

类型转化

java为强类型语言,运算是可能要用到类型转化

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

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

运算时,将不同类型转化为同一类型

public class Demo04 {
    public static void main(String[] args) {
        int i=128;
        byte b=(byte)i;//强制转化格式   (类型)变量名 从高到底
        double b2=i;//自动转换,由低到高

        System.out.println(i);
        System.out.println(b);//byte最大为127,故内存溢出
        /*
        注意点:
        1.不能对bool类型进行转化
        2.不能把对象类型转化为不相关类型
        3.把高容量转入低的为强制转换
        4.转化时可能存在内存溢出,,或者精度问题!
         */
        System.out.println((int)-45.89f);
        char c='a';
        int d=c+1;
        System.out.println(d);
        System.out.println((char)d);
        //操作比较大的时候,注意溢出
        //JDK7新特性,数字之间可以用下划线分割
        int money=10_0000_0000;
        int years=20;
        int total=money*years;//-1474836480计算时已溢出
        long total2=money*years;//默认为int ,转换之前已经存在问题

        long total3=money*((long)years);//先把一个数转化为long型
        System.out.println(total3);
    }
}

变量

变量:可以变化的量(确定的位置,变化的内容)

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

数据类型 变量名=值;

注意点:

每一个变量都有类型,可以是数据类型,也可以是引用类型

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

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

public class Dome05 {
    public static void main(String[] args) {
       // int a,b,c;
       // int a=1,b=2,c=3;  //程序可读性
        String name="qinjiang";
        char x='a';
        double pi=3.14;
    }
}

变量作用域

  • 类变量
  • 实例变量
  • 局部变量
public class Dome06 {
    //属性:变量

    //类变量   static
    static double salary=2500;

    //实例变量,从属于对象;
    //实例变量不初始化,则为该类型的默认值 0   0.0
    //bool---->false   除了基本类型其余默认值都为null
    String name;
    int age;

    //main方法
    public static void main(String[] args) {
        //局部变量:必须声明与初始化值
        int i=10;
        System.out.println(i);

        //实例变量的使用
        //变量类型 变量名字=new Demo06();
         Dome06 demo06=new Dome06();
        System.out.println(demo06.name);

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

    }
    //其他方法
    public void add(){
        //System.out.println(i);错误
    }
}

常量

常量:初始化以后不可以改变的值

一种特殊变量,它的值一旦被设立,在程序运行过程中就不允许被改变

final 常量名=值;

final double PI=3.14;

常量名一般使用大写字母

public class Demo07 {

    //修饰符,不区分先后顺序(static,final,public,private等等)
    static final double PI=3.14;
    final static double PI1=3.14;

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qr6RgzjM-1645616370176)(C:\Users\tangz\AppData\Roaming\Typora\typora-user-images\image-20220223165703047.png)]

变量命名规范:

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

类成员变量:首字母小写与驼峰原则:monthSalary

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

常量:大写字母与下划线MAX_VALUE

类名:首字母大写与驼峰原则Man

方法名:首字母大写与驼峰原则:run()

运算符

Java语言支持的运算符:

算术运算符:+ ,-,*,/,%,++,–

赋值运算符:= 把后面的数赋值给变量

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

逻辑运算符:&&与,||或,!非

位运算符:&,|,^,~,>>,<<,>>>

条件运算符:?:

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

优先级:()最高

public class Demo01 {
    public static void main(String[] args) {
        //二元运算符
        //ctrl+D复制当前行到下一行
        int a=10;
        int b=20;
        int c=25;
        int d=25;

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);//注意作用范围
    }
}
package Operator;

public class Demo02 {
    public static void main(String[] args) {
        long a=34786278582349365L;
        int b=123;
        short c=10;
        byte d=8;

        System.out.println(a+b+c+d);//long类型
        System.out.println(b+c+d);//int 类型
        System.out.println((String)(c+d));//int类型
        //如果有long类型,结果为long型,其他都为int类型

    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-65afnKAq-1645616370177)(C:\Users\tangz\AppData\Roaming\Typora\typora-user-images\image-20220223171349691.png)]

关系运算符与取余

package Operator;

public class Demo03 {
    public static void main(String[] args) {
        //关系运算符返回结果:正确,错误  布尔值
        int a=10;
        int b=20;
        int c=21;
        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);
        System.out.println(c%a);
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3hldi5qy-1645616370178)(C:\Users\tangz\AppData\Roaming\Typora\typora-user-images\image-20220223171826912.png)]

自增自减

 public class Demo04 {
    public static void main(String[] args) {
        //++  --自增  自减  一元运算符
        int a=3;
        int b=a++;
        //a++等于a=a+1这个++在赋值给b之后
        System.out.println(a);
        //a++等于a=a+1这个++在赋值给之后前
        int c=++a;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

        //幂运算 2^3  2*2*2=8  幂运算一般使用工具类运算
        double pow=Math.pow(3,3);
        System.out.println(pow);
    }

}

逻辑运算符

public class Demo05 {
    public static void main(String[] args) {
        //  与(and)  或(or)  非(取反)
        boolean a=true;
        boolean b=false;
        System.out.println("a&&b:"+(a&&b));//俩个为真才为真
        System.out.println("a||b:"+(a||b));//俩个都为假才为假
        System.out.println("!(a&&b):"+(!(a&&b)));//取反

        //短路运算
       // System.out.println("a&&b:"+(a&&b));//发现b为假,就不看a了
        int c=5;
        //实验验证,如果继续运算,则c为6,短路运算则为5
        boolean d=(c<4)&&(c++<4);
        System.out.println(c);
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kYXABREn-1645616370178)(C:\Users\tangz\AppData\Roaming\Typora\typora-user-images\image-20220223175348221.png)]

位运算

public class Demo06 {
    public static void main(String[] args) {
        /*
        A=0011 1100
        B=0000 1101
        
        A&B  0000 1100 对应位都为1才为1
        A/B  0011 1101 对应位都为0才为0
        A^B  0011 0001 相同取0,不同取1
        ~B   1111 0010 取反
        <<左移  相当于数字乘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);
    }
}

扩展赋值运算符与三位运算符

public class Demo07 {
    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);

        //字符串连接符
        //如果加减里面string类型,转化为字符串连接,但需在前面,放后面相当于继续输出什么
        System.out.println(a+b);
        System.out.println(""+a+b);
        System.out.println(a+b+"sa");

        //三元运算符
        //x?y:z
        //如果x为真,结果为y,否则结果为z
        int score=80;
        String tyre=score<60?"不及格":"及格";
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V4Wt91Oz-1645616370178)(C:\Users\tangz\AppData\Roaming\Typora\typora-user-images\image-20220223180241438.png)]

包机制

包的本质就是一个文件夹

包语句的语法格式为 package pkg1[.pkg2.[.pkg3……]]

一般利用公司域名倒置作为包名

为了能够使用某一个包的成员,我们需要在java程序中导入该包,使用"import"语句即可

import+包名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oQYY4Qua-1645616370178)(C:\Users\tangz\AppData\Roaming\Typora\typora-user-images\image-20220223181824802.png)]

JavaDoc

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

参数信息

@author作者名

@version版本号

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

@param参数名

@return 返回值情况

@throws异常抛出情况

上一篇:Windows驱动开发工具 WDK 学习笔记(1)


下一篇:python的文件处理学习笔记