JavaSE基础语法大汇总

Java基础语法

注释

写注释是一个很好的习惯

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

创建一个空项目 ---> file ---> new ---> model (注意这里不能new 一个project,因为空项目本身就是一个project) ---> 然后就是一套熟悉的创建j

ava项目的过程了

public class HelloWorld {
    public static void main(String[] args) {
        //单行注释
        //输出一个Hello,World!
        System.out.println("Hello,World!");

        /*多行注释
        * 第一行
        * 第二行*/

        //JavaDoc 文档注释
        /**
         *@Description  Hello World!
         */
    }
}

标识符

  • 关键字
  • 标识符都应该以A-Z,a-z,_ 开始,首字符之后可以是任意组合。甚至可以用中文命名String 王者荣耀 = “0001”。但是非常不建议用中文!!
  • 标识符大小写敏感

数据类型

  • 强类型语言

    • 所有变量必须先定义再使用
  • 弱类型语言

    • 比强类型语言快一点,但是强类型语言更安全
  • Java数据类型两大类

    • 基本类型(主要先学好这个)

      String 不是关键字,是类

      • 数值型

        一个字节 = 8个bit 表示的范围 0~255,如果能表示负数,那就是 -128 ~ 127

        • byte 1个字节 -128~127
        • short 2个字节
        • int 4个字节
        • long 8个字节
        • float 4个字节
        • double 8个字节
        • char 2个字节
      • boolean型

        • 占一位,只有true和false
    public class HelloWorld {
      public static void main(String[] args) {
        //八大基本数据类型
    
        //整数
        int num1 = 10;
        byte num2 = 20;
        short num3 = 30;
        long num4 = 30L;//long类型后面要加L;
    
        //小数、浮点数
        float num5 = 50.1F;
        double num6 = 3.1415926535874965126529;
    
        //字符
        char name = 'A';
        //String 字符串 不是关键字是类
        String name = "yuyuyu627";
    
        //布尔值 :只有是非两种值
        boolean flag1 = true;
        boolean flag2 = false;
      }
    }
    
    
    • 引用类型
      • 接口
      • 数组

数据类型扩展以及面试题


整数拓展

public class HelloWorld {
  public static void main(String[] args) {
    //整数拓展  进制:二进制0b 十进制 八进制0 十六进制0x
    int i1 = 10;
    int i2 = 010;//八进制 逢八进一 010=8 0~7
    int i3 = 0x10;//十六进制 逢十六进一 0x10=16 0~9 A~F

    System.out.println(i1);
    System.out.println(i2);
    System.out.println(i3);
  }
}

输出:

10
8
16

浮点数拓展

public class HelloWorld {
  public static void main(String[] args) {
    //========================================================
    //浮点数拓展  银行业务怎么表示  绝不能用float
    //BigDecimal 数学工具进行比较  银行业务绝对不能用flloat进行表示
    //=========================================================
    //float  有限 离散 舍入误差 大约 接近但不等于
    //double
    //最好完全避免使用浮点数比较
    float f = 0.1f;//0.1
    double d = 1.0/10;//0.1

    System.out.println(f==d);//false
    System.out.println(f);
    System.out.println(d);

    float d1 = 23123123123123f;
    float d2 = d1 + 1;
    System.out.println(d1==d2);//true

  }
}

输出:

false
0.1
0.1
true

字符拓展

public class HelloWorld {
  public static void main(String[] args) {
    //========================================================
    //字符拓展
    //=========================================================
    char c1 = 'a';
    char c2 = '中';

    System.out.println(c1);
    System.out.println((int)c1);//强制转换

    System.out.println(c2);
    System.out.println((int)c2);

    //所有的字符本质还是数字
    //编码 Unicode 占2字节 65535 Excel:最长只有2^16=65536这么长
    //Unicode 包含ASCII编码还有机内码
    //U0000 UFFFF

    char c3 = '\u0061';
    System.out.println(c3);//a

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

  }
}

输出:

a
9720013
a
Hello	World
Hello
World

布尔值拓展

public class HelloWorld {
  public static void main(String[] args) {
    //========================================================
    //布尔值拓展
    //=========================================================
   boolean flag = true;
   //下面这两行代码一样的 代码要精简易读
   if(flag==true){}
   if(flag){}

  }
}

类型转换


  • java是强类型语言。所以在进行一些运算的时候要进行类型转换

    低 ----------------------------> 高
    byte,short,char->int->long->float->double
    
  • 不同类型先转换为同一类型再计算

  • 强制类型转换

  • 自动类型转换

public class HelloWorld {
  public static void main(String[] args) {

    int i = 128;
    //byte b = i; 报错
    byte b = (byte)i;//内存溢出 输出 -128

    //强制类型转换  高==>低 (类型)变量名

    System.out.println(i);
    System.out.println(b);

    //自动转换 低==>高
    double d = i;//这里不会报错
    System.out.println(d);

    /*
    注意:
    1. 不能对布尔值进行转换 因为布尔是按位的
    2. 不能把对象类型转换成不相干的类型
    3. 高容量往低容量转的时候要强制转换,反之不用懂,会自动转换
    4. 转换的时候可能存在 内存溢出 或者 精度问题
     */
    System.out.println("===========");
    System.out.println((int)23.7);
    System.out.println((int)-45.89f);

    char c = 'a';
    int t = c+1;
    System.out.println(t);//98
    System.out.println((char)t);//b

  }
}

输出:

128
-128
128.0
===========
23
-45
98
b
public class HelloWorld {
  public static void main(String[] args) {

   //操作数比较大的时候,注意溢出的问题
    //JDK7新特性:数字之间可以用下划线分割而不会输出下划线 1000_0000
    int money = 10_0000_0000;
    int years = 20;
    int total = money * years;//-1474836480
    long total2 = money * years;//-1474836480 默认是int,结果在转换之前就出问题了

    long total3 = money * ((long)years);//先把其中一个转换成long
    System.out.println(total3);//20000000000
  }
}

变量


注意

  • java是强类型语言,每个变量都有类型,基本类型 / 引用类型

  • java变量是最基本的存储单元,要素包括变量名,变量类型和作用域

变量的分类

  • 类变量
  • 实例变量
  • 局部变量
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

public class HelloWorld {

  //类变量
  static double salary = 2500;

  //属性:变量
  //实例变量:从属于对象 不初始化会有一个默认值 数值型的默认值一般是 null或者0;bool值默认false
  //除了基本类型,默认值都是null
  String name;//不用初始化就能用
  int age;

  //main方法
  public static void main(String[] args) {

    //局部变量;必须声明和初始化值
    int i = 10;//就是得给i一个初始值10才行
    System.out.println(i);

    //变量类型  变量名字 = new HelloWorld()
    HelloWorld helloWorld = new HelloWorld();
    System.out.println(helloWorld.age);
    System.out.println(helloWorld.name);
    //类变量 static
    System.out.println(salary);
  }

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

  }
}

输出:

10
0
null
2500.0

常量:初始化之后不能再改变的值,常量命名一般使用大写字符

final 常量名 = 值
final double PI = 3.14
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

public class HelloWorld {
  //修饰符不存在先后顺序,即:double前面的都是修饰符,谁先谁后不影响最后输出
 static final double PI = 3.14;//同 final static double PI = 3.14;

  public static void main(String[] args) {

    System.out.println(PI);//输出3.14

  }
}

变量的命名规范

  • 变量、方法、类名:见名知意
  • 成员变量、局部变量、方法名:首字母小写+驼峰原则
    • monthSalary
    • lastName
    • runRun( )
  • 常量:大写字母+下划线
    • MAX_VALUE
  • 类名:首字母大写+驼峰原则
    • GoodMan

一些运算符

package base;

public class operator {
    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);//强制类型转换,不然除出来是整数

        long a1 = 123231231233121323L;
        int b1 = 123;
        short c1 = 10;
        byte d1 = 8;

        System.out.println(a1+b1+c1+d1);//只要有一个long,输出结果就是long
        System.out.println(b1+c1+d1);//int
        System.out.println(c1+d1);//int,即便是short+byte相加也是int

        //关系运算符返回结果:正确/错误 布尔值
        
    }
}

自增、自减、幂运算

package base;

public class Demo02 {
    public static void main(String[] args) {
        //++ -- 自增 自减 一元运算符
        int a = 3;
        int b = a++;//先给b赋值,再自增
        //相当于在这加一行 a = a + 1
        System.out.println(a);//4

        //相当于在这加一行 a = a + 1
        int c = ++a;//先自增,再给c赋值

        System.out.println(a);//5
        System.out.println(b);//3
        System.out.println(c);//5

        //幂运算 2^3 2*2*2 = 8 借助类工具
        double pow = Math.pow(3,2);
        System.out.println(pow);//9.0


    }
}

逻辑运算符、位运算符

package base;

public class Demo03 {
    public static void main(String[] args) {

        //短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);//实际上执行到 c<4 发现是 false直接短路,不会执行后面的 c++<4
        //验证:c++<4 不会执行
        System.out.println(d);
        System.out.println(c);//输出:5。如果执行 c++<4 应该是输出 6

        //位运算的面试题目
        /*
        A = 0011 1100
        B = 0000 1101

        A&B = 0000 1100
        A|B = 0011 1101
        A^B = 0011 0001
        ~B = 1111 0010

        2*8 怎么运算最快?按位左移(直接和底层打交道)
        <<  *2
        >>  /2
        很多算法题目里会用移位计算,效率极高
         */
    }
}

字符串连接

package base;

public class Demo04 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        //字符串连接符:+
        System.out.println(""+a+b);//输出:1020
        System.out.println(a+b+"");//输出:30
        //运算符的优先级 采用加括号的形式,把优先级表示的明明白白
    }
}

包机制

  • 包的本质是文件夹
  • 一般利用公司的域名倒置作为包名
    • www.baidu.com ---包名---> com.baidu.www
包语法关键字:package
导入包:import
package com.yuyuyu.base.*;//" * "表示通配符,将包里面的所有类都导入

JavaDoc

jdk8帮助文档中文版

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

  • 参数信息

  • 通过命令行输入 javadoc 参数 Java文件 生成 JavaDoc 文档

使用IDEA生成JavaDoc文档

使用IDEA生成JavaDoc文档

教程非常之很详细,easy!

posted @   yuyuyu627  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示