JavaSE——基础语法

Java笔记基础

1.注释

  • 单行注释:以"//"开头
  • 多行注释:以"/“开头,以”/"结尾
  • 文档注释:以"/**“开头,”*/"结尾。注释中包含一些说明性的文字及一些JavaDoc标签。
public class Hello {
    public static void main(String[] args) {
        // 单行注释
        // 输出一个Hello World!!!
        System.out.println("Hello World!!!");
        
        /* 多行
        * 注释
        * 
        * */
        
        //javaDoc:文档注释 /** */
    }
}

2.标识符

  • 用来给变量、类、方法以及包进行命名的

  • 四大规则:

    1. 以大小写字母,下划线,$,数字组成;
    2. 不能以数字开头
    3. 大小写敏感;但长度无限制
    4. 不可以是Java关键字
  • 使用规范:表示类名的标识符:每个单词的首字母大写,如Man,GoodMan等

    ​ 表示方法和变量的标识符:第一个单词小写,从第二个单词开始首字符大写,我们称为“驼峰原则”,如eat(); eatFood();

  • 注意:Java不采用ASCII字符集;而是采用Unicode字符集

3.关键字

abstractassertbooleanbreakbytecase
catchcharclassconstcontinuedefault
dodoubleelseextendsfinalfinally
floatforgotoifimplementsimport
instanceofintinterfacelongnativenew
nullpackageprivateprotectedpublicreturn
shortstaticstrictfpsuperswitchsynchronized
thisthrowsthrowtransienttryvoid
volatilewhile

注意:另外,true ,false and null都是Java中定义的特殊字符,虽然他们不属于关键字,但也不能被用作类名、方法名和变量名等。goto和const是两个保留字。

4.强类型语言

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

  • public class Hello {
        public static void main(String[] args) {
            String a="Hello World!!";
            System.out.println(a);
        }
    }
    

5.Java的数据类型分为两种:

5.1基本类型和引用类型
  • public class Hello {
        public static void main(String[] args) {
            // 八大基础数据类型
            // 整数
            int num1 = 10;
            byte num2 = 20;
            short num3 = 30;
            long num4 = 30L;   //Long 类型要在数组后面加个L
    
            // 小数
            float num5 = 50.1F;  //float 类型要在数组后面加个F
            double num6=3.1416926;
    
            // 字符
            char name = 'a';
    
            // 字符串
            String a="Hello World!!";//String 不是关键字,是类
            System.out.println(a);
    
            // 布尔值
            boolean flag1 = true;
            boolean flag2 = false;
        }
    }
    
5.2 扩展
  • 整数扩展:

    ​ 进制:二进制0b 十进制 八进制0 十六进制0x

    public class Hello {
        public static void main(String[] args) {
            int i = 10;
            int i2 = 010;
            int i3 = 0x10;
            System.out.println(i);
            System.out.println(i2);
            System.out.println(i3);
        }
    }
    
  • 浮点数扩展:

    ​ float 类型,尾数可精确到7位有效数字

      	double 类型,默认,常用
    

    ​ 上述两种类型精度有限,离散,含有误差 ,浮点型不精确,最好不使用浮点数进行比较。(同时也不适合精度要求非常高的商业计算,例如银行业务,需要用==BigDecimal==表示和比较)

  • 字符扩展(强制转换):

    public class Hello {
        public static void main(String[] args) {
            char c = 'a';
            System.out.println(c);
            System.out.println((int) c);
        }
    }
    

    ​ 所有的字符本质还是数字

    ​ 编码 Unicode 表: 2个字节

  • 转义字符

    \t 制表符
    \n  换行
    
  • 对象 从内存分析

  • 布尔值扩展

    // 布尔类型不能用0或非0的整数来替代true和false
    
    if(flag==true){}
    if(flag){}
    // Less is More!   代码要精简已读
    

6.类型转换

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

    低——————————————————————————————>高

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

  2. public class Hello {
        public static void main(String[] args) {
            int i = 128;
            byte b = (byte)i;   //内存溢出
            System.out.println(i);
            System.out.println(b);
    
        }
    }
    
  3. 强制类型转换 高 —> 低 (类型)变量名

  4. 自动转换 低 ----> 高

  5. /*
    1.不能对布尔值转换
    2.不能把对象类型转换为不相干的类型
    3.转换的时候存在内存溢出,或者精度问题!!!
    */
    
  6. //当操作数比较大时,注意溢出问题
    //JDK7新特性,数字之间可以用下划线分割
    int money = 10_0000_0000; //10亿,下划线不会被打印出来
    System.out.println(money); //1000000000
    int years = 20;
    
    int total = money*years;  //数据大,溢出
    System.out.println(total); //-1474836480
    
    long total2 = money*years; //默认是int,转换前就有溢出问题
    System.out.println(total2); //-1474836480
    
    long total3 = money*(long)years; //先把一个数转Long
    System.out.println(total3); //20000000000
    
    
  7. public class Hello {
        public static void main(String[] args) {
            int i = 10_0000_0000;
            int b = 20;
            long total = i*((long)b);
            System.out.println(total);
    
        }
    }
    

7.常量、变量

-> 常量
  • 在Java中,用关键字 final 来定义一个常量。

  • 常量一旦初始化后不能再改变的值,不会变动的值。

  • 声明格式:

    ​ final type varName = value;

    • 一般将1,2,3,‘a’,‘b’,true,false,"helloworld"等称为字符常量;而使用 final 修饰谁说的PI等称为符号常量
    • 命名规则:全部以大写字母书写;用下划线将各个单词隔开。
  • //常量一般用大写字符
    final 常量名=;
    final double PI=3.14;
    
    //修饰符 不存在先后顺序,static可以写final后面
    static final doube PI=3.14; //类变量,该类下的全局范围
    
  • public class Hello {
    
        static final double PI = 3.14;
    
        public static  void main(String[] args) {
            System.out.println(PI);
        }
    }
    
-> 变量
  • 本质:代表一个“可操作的存储空间”,空间的位置是确定的,但在里面放的位置不确定。

  • 变量的申明:

    • Java是一种强类型语言,每个变量都必须申明其数据类型。
    • 变量的数据类型决定了变量占据存储空间的大小。
  • 变量使用之前必须先赋初始值

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

//数据类型 变量名 = 值;
type varName [=value][{,varName[=value]}];
//可以使用逗号隔开同多个类型的变量,但不建议在一行定义多个变量
1.变量的分类和作用域
类型声明位置从属于生命周期(作用域)
局部变量方法或语句块内部方法/语句块从申明位置开始,直到方法或语句块执行完毕,局部变量消失
成员变量(实例变量)类内部、方法外部对象对象创建,成员变量也跟着创建;对象消失,成员变量也跟着消失;
静态变量(类变量)类内部,static修饰类被加载,静态变量就有效;类被卸载,静态变量消失。
  • public class Variable{
        static int 	allClicks = 0; //类变量
        String str = "hello world"; //实例变量
        
        public void method(){
            int i=0; //局部变量
        }
    }
    
  • public class Hello {
    
        // 类变量  static
        static  double salary = 2_500;
    
        // 属性:变量
    
        // 实例变量:从属于对象:
        String name;
        int age;    //可以不给赋值,如果不自行初始化,会默认赋值这个类型的默认值
                    //布尔值:默认值:false
                    // 除了基本类型,其余默认值为 null
    
        // main 方法
        public static void main(String[] args) {
    
            // 局部变量:必须声明和初始化值
            int i = 100;
            System.out.println(i);
    
            // 变量类型 变量名字 = new Hello();
            Hello hello = new Hello();
            System.out.println(hello.age);
    
            // 类变量 static
            System.out.println(salary);
    
        }
    
        // 其他方法
        public void add(){
    
        }
    }
    
2.变量的命名规范
  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写+驼峰原则:lastName
  • 局部变量:首字母小写+驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写+驼峰原则:Man,GoodMan
  • 方法名:首字母小写+驼峰原则:run(),fastRun()

8.运算符

一、算术运算符
类型运算符说明
基本运算符+、-、*、/加、减、乘、除
取余运算符%取余
递增和递减++、- -递增、递减
  1. 基本运算符

    int a=10;
    int b=20;
    System.out.println(a/b); //0
    System.out.println((double)a/b); //0.5
    
    long c=12300000000;
    System.out.println(a+b); //int
    System.out.println(a+c); //long 自动转换式子中容量大的数据类型
    
    

    ==注意:==一般分母都不能为0,为0时会发生程序错误;但对于基本运算符,只要将分子定义为double型,分母为0时是正确的,得到的值为无穷大。

  2. 取余运算符

    • 若取余运算的两个操作数都是整数类型。则取余运算的第二个操作数不能为0 ,否则程序出现错误

    • 若取余运算的两个操作数有一个或两个为浮点数,则允许第二个操作数是0或是0.0;只是取余运算得到的结果为NaN(NaN是Java中的特殊数字,表示非数字类型)

    • public class Java04 {
          /*
          * 取余运算
          */
          public static void main(String[] args) {
              double A = 99.0;
              int B =0;
              double C = A%B;
              System.out.println("99.0%0="+C); //NaN
          }
      }
      
  3. 递增和递减

    • // ++自增 --自减 单目运算符
      int a = 3;
      int b = a++; //b=a,a=a+1 先赋值 即b=3 a=4
      int c = ++a; //a=a+1,c=a 先自增 即a=5 c=5
      
      System.out.println(a); //5
      System.out.println(b); //3
      System.out.println(c); //5
      
      
二、关系运算符和逻辑运算符
  1. 关系运算符
类型说明
==等于
!=不等于
>大于
<小于
>=大于或等于
<=小于或等于
  1. 逻辑运算符

    • && 逻辑与运算:两个变量都为真,结果为true

    • || 逻辑或运算:两个变量有一个为真,结果为true

    • ! 逻辑非(取反),真变为假,假变为真

    • ^ 异或运算符,相同为0,不同为1

    • // 与(and) 或(or) 非(取反)
      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<5)&&(c++<5); //第一个值为false,后面就不进行判定了
      System.out.println(d); //false
      System.out.println(c); //5 c++未执行
      
      

3.位逻辑运算符(Bitwise Operator)

  • 在Java程序设计中,使用位逻辑运算符来操作二进制数据。如果用在其他进制的数据中,需要先将它们转换成二进制数据。位逻辑运算符可以直接操作整数类型的位,这些整数类型包括long、int、short、char和byte。
    位逻辑运算符
  • /*
        A = 0011 1100
        B = 0000 1101
    
        A&B 0000 1101 按位与
        A|B 0011 1101 按位或
        A^B 0011 0001 异或
        ~B  1111 0010 非
    
        面试题:2*8 怎么算最快? 2<<3
        <<左移  *2 效率极高!!
        >>右移  /2
       */
    System.out.println(2<<3); // 16
    
  1. 条件运算符(三目运算符)

    • int a = 10;
      int b = 20;
      
      a+=b; // a = a+b
      a-=b; // a = a-b
      
      System.out.println(a); //10
      //字符串连接符 + ,转化为String类型,然后拼接    注意!!
      System.out.println(""+a+b); //1020
      System.out.println(a+b+""); //30 先进行运算,再转为String拼接
      System.out.println(a+b+"str"); //30str
      
      
    • // x ? y : z
      //如果x为真,则结果为y,否则为z
      //if(x) y; else z;
      int score = 80;
      String type = score<60?"及格":"不及格";
      System.out.println(type); //及格
      
      
三、运算符的优先级

在这里插入图片描述

9.Java基础06——包机制

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

  • 包的语法格式:

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

  • 为了能够使用一个包的成员,需要在Java程序中导入该包

  • import package1[.package2...].(className|*); //通配符* 导入包下所有的类
    
  • 参考:阿里巴巴Java开发手册

10.字符串

字符串(String)是由0或多个字符组成的有限序列,是Java编程语言中表示文本的数据类型。通常一字符串的整体作为操作对象。

10.1.字符串的初始化
// 在Java程序中,使用关键字new来创建String实例
String a = new String();		//创建了一个名为String的类,并把它赋值给变量,但它此时是一个空的字符串
a="I am a person from Chongqing";
String a=new String("I am a person from Chongqing");

10.2. String 类
/*
    1.索引:通过索引函数charAT()可以返回字符串中指定索引的位置;
    索引数字从0开始
    public char charAt(int index);
*/
public static void main(String[] args) {
     String s="IAmChinese";
     System.out.println(s.charAt(5));
}


/*
    2.追加字符串函数 concat()的功能是在字符串的末尾添加字符串
    public String concat(String s)
*/
    public static void main(String[] args) {
        String s="IAmChinese";
        String d="hello";
        System.out.println(s.concat(d));
    }


 /*
    3.比较字符串函数 equalsIgnoreCase()
    判断两个字符串是否完全相同,相同返回TRUE,否则返回一个FALSE
    public Boolean equalsIgnoreCase(String s)
 */
    public static void main(String[] args) {
        String s="IAmChinese";
        String d="hello";
        System.out.println(s.equalsIgnoreCase(d));
    }

/*
    4.取字符串长度
    public int length()
*/
    public static void main(String[] args) {
        String s="IAmChinese";
        System.out.println(s.length());
    }


/*
    5.替换字符串:replace()函数
    替换是两个动作:第一个是查找,另一个是替换
    public String replace(char old,char new)
 */
    public static void main(String[] args) {
        String s="I want I need to go";
        String y=s.replace("go","be going");
        System.out.println(y);
        String x=s.replace('I','Y');
        System.out.println(x);
    }

 /*
    6.字符串的截取函数 substring()
    public String substring(int begin)
    public String substring(int begin,int end)
 */
    public static void main(String[] args) {
        String s="I am Chinese";
        System.out.println(s.substring(2));
    }

/*
    7.字符串大小写转换
    大写字母转换成小写字母
    public String toLowerCase()
    小写字母转换成大写字母
    public String toUpperCase()
 */
    public static void main(String[] args) {
        String s="I WANT I NEED TO GO";
        System.out.println(s.toLowerCase());
        System.out.println(s.toLowerCase().toUpperCase());
    }
    
/*
     8.消除字符串中的空格字符
     trim()可以去除数据两端的空格,在判断数据是否为空且不能全是空格时可以使用。
     trim() 方法不会改变原始字符串。
    trim() 方法不适用于 null, undefined, Number 类型。
*/
    public static void main(String[] args) {
        String username="ManQinXio";
        String password="123 45678";
        if(username.trim().length()==0||password.trim().length()==0){
            System.out.println("Hello!");
        }else {
            System.out.println("No Rule!!!");
        }
    }
10.3. StringBuffer 类

[^StringBuffer类是Java中另一个重要的操作字符串的类。当需要对字符串进行大量的修改时,使用StringBuffer类是最佳的选择。如果想转成 String 类型,可以调用 StringBuffer 的 toString() 方法。]:

  1. 概述:

    • Java.lang.StringBuffer 线程安全的可变字符序列。在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。可将字符串缓冲区安全地用于多个线程。

    • StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。

  2. public class Java06 {
        /*
        * 1.追加字符:
        *   public synchronized StringBuffer append(boolean b)
        * 2.插入字符
        *   public synchronized StringBuffer insert(int offset,String s)
        * 3.颠倒字符
        *   public synchronized StringBuffer reverse()
        */
        public static void main(String[] args) {
            StringBuffer s=new StringBuffer("好久不见!");
            s.append("我的好朋友。");
            System.out.println(s);
    
            StringBuffer b = new StringBuffer("在左,天才在右");
            System.out.println(b.insert(0,"疯子"));
    
            System.out.println(b.reverse());
        }
    }
    

11.JavaDoc生成文档

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

  • 参数信息

    • @author 作者名
    • @version 版本号
    • @since 指明最早用的jdk版本
    • @param 参数名
    • @return 返回值情况
    • @throws 异常抛出情况
  • API文档:https://docs.oracle.com/javase/8/docs/api/

  • 通过命令行生成JavaDoc文档

    1. 打开某个类所在文件夹下的cmd命令行
    2. 输入:javadoc -encoding UTF-8 -charset UTF-8 Doc(类名).java
    3. 会自动生成该类有关的API文档,查看文件夹发现多了一些文件
    4. 打开 index.html(首页)查看文档注释
    5. 在这里插入图片描述
  • 通过IDEA生成JavaDoc文档

    1. 在这里插入图片描述

    2. 在这里插入图片描述

    3. 在这里插入图片描述

    4. 在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值