2021-08-15 Java基础语法

Java基础语法

注释

  1. 单行注释

    //单行注释
    
  2. 多行注释

    /*
    多行注释
    */
    
  3. 文档注释

    /**
    *文档注释,/**开头,* /结束,每行得加*
    *@Description Hello World
    *@Author GuYUe
    */
    
  4. 有趣的代码注释

    /***                                                                    
     *            .,,       .,:;;iiiiiiiii;;:,,.     .,,                   
     *          rGB##HS,.;iirrrrriiiiiiiiiirrrrri;,s&##MAS,                
     *         r5s;:r3AH5iiiii;;;;;;;;;;;;;;;;iiirXHGSsiih1,               
     *            .;i;;s91;;;;;;::::::::::::;;;;iS5;;;ii:                  
     *          :rsriii;;r::::::::::::::::::::::;;,;;iiirsi,               
     *       .,iri;;::::;;;;;;::,,,,,,,,,,,,,..,,;;;;;;;;iiri,,.           
     *    ,9BM&,            .,:;;:,,,,,,,,,,,hXA8:            ..,,,.       
     *   ,;&@@#r:;;;;;::::,,.   ,r,,,,,,,,,,iA@@@s,,:::;;;::,,.   .;.      
     *    :ih1iii;;;;;::::;;;;;;;:,,,,,,,,,,;i55r;;;;;;;;;iiirrrr,..       
     *   .ir;;iiiiiiiiii;;;;::::::,,,,,,,:::::,,:;;;iiiiiiiiiiiiri         
     *   iriiiiiiiiiiiiiiii;;;::::::::::::::::;;;iiiiiiiiiiiiiiiir;        
     *  ,riii;;;;;;;;;;;;;:::::::::::::::::::::::;;;;;;;;;;;;;;iiir.       
     *  iri;;;::::,,,,,,,,,,:::::::::::::::::::::::::,::,,::::;;iir:       
     * .rii;;::::,,,,,,,,,,,,:::::::::::::::::,,,,,,,,,,,,,::::;;iri       
     * ,rii;;;::,,,,,,,,,,,,,:::::::::::,:::::,,,,,,,,,,,,,:::;;;iir.      
     * ,rii;;i::,,,,,,,,,,,,,:::::::::::::::::,,,,,,,,,,,,,,::i;;iir.      
     * ,rii;;r::,,,,,,,,,,,,,:,:::::,:,:::::::,,,,,,,,,,,,,::;r;;iir.      
     * .rii;;rr,:,,,,,,,,,,,,,,:::::::::::::::,,,,,,,,,,,,,:,si;;iri       
     *  ;rii;:1i,,,,,,,,,,,,,,,,,,:::::::::,,,,,,,,,,,,,,,:,ss:;iir:       
     *  .rii;;;5r,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,sh:;;iri        
     *   ;rii;:;51,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.:hh:;;iir,        
     *    irii;::hSr,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,sSs:;;iir:         
     *     irii;;:iSSs:.,,,,,,,,,,,,,,,,,,,,,,,,,,,..:135;:;;iir:          
     *      ;rii;;:,r535r:...,,,,,,,,,,,,,,,,,,..,;sS35i,;;iirr:           
     *       :rrii;;:,;1S3Shs;:,............,:is533Ss:,;;;iiri,            
     *        .;rrii;;;:,;rhS393S55hh11hh5S3393Shr:,:;;;iirr:              
     *          .;rriii;;;::,:;is1h555555h1si;:,::;;;iirri:.               
     *            .:irrrii;;;;;:::,,,,,,,,:::;;;;iiirrr;,                  
     *               .:irrrriiiiii;;;;;;;;iiiiiirrrr;,.                    
     *                  .,:;iirrrrrrrrrrrrrrrrri;:.                        
     *                        ..,:::;;;;:::,,.                             
     */                                                                     
    

标识符

关键字

  1. 访问控制

    关键字意思
    private私有的
    protected受保护的
    public公共的
  2. 类、方法和变量修饰符

    关键字意思
    abstract声明抽象
    class
    extends扩允,继承
    final终极,不可改变的
    implements实现
    interface接口
    native本地
    new新,创建
    static静态
    strictfp严格,精准
    synchronized线程,同步
    transient短暂
    volatile易失
  3. 程序控制语句

    关键字意思
    break跳出循环
    continue继续
    return返回
    do运行
    while循环
    if如果
    else反之
    for循环
    instance of实例
    switch开关
    case返回开关里的结果
    default默认
  4. 错误处理

    关键字意思
    catch处理异常
    finally有没有异常都执行
    throw抛出一个异常对象
    throws声明一个异常可能被抛出
    try捕获异常
  5. 包相关

    关键字意思
    import引入
    package
  6. 基本类型

    关键字意思
    boolean布尔型
    byte字节型
    char字符型
    double双精度
    float浮点
    int整型
    long长整型
    short短整型
    null
    true
    false
  7. 变量引用

    关键字意思
    super父类,超类
    this本类
    void无返回值

标识符注意点

  • 标识符应以大小写字母(A-Z,a-z),美元($),下划线(_)开始。

  • 首字母之后可以是任意字母,数字的任何字符组合。

  • 不能以关键字命名

  • 大小写敏感

  • 中文可以用,但不建议

数据类型

Java是一种强类型语言,所有变量都得先定义后使用。

基本类型

  1. 整数:byte占1个字节范围:-128-127;

    一个字节,8位,最大是二进制11111111,表示成10进制是2e8=256,分正负,-128-127

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

    ​ int占4个字节范围:-2147483648-2147483647,±21亿

    ​ long占8个字节范围:-9223372036854775808-9223372036854775807

    long一般在数字后加L,表示L类型

  2. 浮点:float占4个字节,1.4e-045〜3.4e + 038

    ​ double占8个字节,4.9e-324〜1.8e + 308

  3. 字符:char占两个字节,字符用单引号,一个汉字也是一个字符

    字符串:String,String不是关键字,是一个类,字符串用双引号

  4. 布尔类型:占一位,值只有true\false

    字节

    1. 位bit:是计算机内部数据储存的最小单位,11001100是—个八位二进制数

    2. 字节byte:是计算机中数据处理的基本单位,习惯上用大写B来表示,1B=8bit

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

  5. 拓展

    • 进制、精度
    public class Demo3 {
     public static void main(String[] args) {
         int i1 = 10;
         int i2 = 010;//八进制以0开头,8
         int i3 = 0x10;//十六进制以ox开头,16
         System.out.println(i1);
         System.out.println(i2);
         System.out.println(i3);
    	      
         float f = 0.1f;
         double d = 1.0/10;
         System.out.println(f==d);
         System.out.println(f);
         System.out.println(d);
    	 //
         
         float d1 = 22323232323232f;
         float d2 = d1+1;
         System.out.println(d1);
         System.out.println(d2);
         System.out.println(d1==d2);
         //银行业务少用浮点数进行比较;
     }
    }
    
    1. 转义字符
      \t 制表符
      \n 换行
    System.out.println("Hello\tWorld");
    System.out.println("Hello\nWorld");
    

    其他常用转义符如下:

    引用-博客园-刘小将

    1. 布尔值
    flag = true
    if(flag=true){}
    if(flag){}
    //两者作用相同
    

引用类型

  1. 接口
  2. 数组

类型转换

类型级别

低级可以自动转换成高级

强制转换

高级转换成低级:变量前加(类型),内存溢出会循环

public class Demo5 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i; //内存溢出,循环

        System.out.println(b);
        System.out.println(i);
    }
}
//b=-128
  1. 不能转换转换布尔值
  2. 类型要相干
  3. 大容量到低容量要强制转换
  4. 转换可能存在内存溢出或精度问题
char c = 'a';
int d = c+1;
System.out.println(d);//98
System.out.println((char) d);//b
public class Demo6 {
    public static void main(String[] args) {
        int money = 10_0000_0000;//JDK7以后数字见可用_分割,且不会输出
        int year = 20;
        int total1 = money*year;//int类型超过21亿溢出
        System.out.println(total1);

        long total2 = money* year;
        System.out.println(total2);//乘法运算时已经出问题,再转换没用

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

变量、常量

每个变量都必须声明类型

变量的作用域

  1. 类变量 定义在class下面,static开头,可以在方法内直接调用

    static int a = 0;
    
  2. 实例变量 定义在class下面,不必初始化,默认值0 0.0 布尔值默认false,除了基本类型其他都是null。方法内调用得先new一个对象。

    String str = "hello";	
    
  3. 局部变量 方法内部,其他方法不能调用

public class Demo8 {
   
   	 //类变量 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 Demo8()
     	   Demo8 demo8 = new Demo8();
      	   System.out.println(demo8.age);
      	   System.out.println(demo8.name);
           System.out.println(salary);
       	}
   
    	//其他方法
   	 public void add(){
       }
   }

常量

初始化之后就不能再改

final 常量名=值

常量名一般用大写字符

final double PI = 3.141592653;

变量的命名规范

  1. 所有变量、方法、类名:见名知意
  2. 类成员变量:首字母小写和驼峰原则: monthSalary,除了第一个单词外,后边单词首字母大写。lastname->lastName
  3. 局部变量:首字母小写和驼峰原则
  4. 常量:大写字母和下划线: MAX_VALUE
  5. 类名:首字母大写和驼峰原则:Man, GoodMan //规范
  6. 方法名:首字母小写和驼峰原则:run(), runRun()

运算符

Java支持的运算符

  1. 算数运算:+ - * / %(模运算,即取余) ++ –
  2. 赋值运算:=
  3. 关系运算:> < >= <= ==(等于) !=(不等于) instanceof
  4. 逻辑运算:&& || ! 与或非
  5. 位运算:& | ~ ^ >> << >>>
  6. 条件运算:? :
  7. 扩展赋值运算:+= -= *= /=
package Operator;

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

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/b);        //int
        System.out.println((double)a/b);
    }
}
package Operator;

public class Demo02 {
    public static void main(String[] args) {
        long a = 123123123123L;
        int b = 123;
        short c = 32767;
        byte d = 127;
        System.out.println(a+b+c+d);//Long
        System.out.println(b+c+d);//int
        System.out.println(c+d);//int
        //有一个是Long,全是long,否则全是int。
    }
}
package Operator;

public class Demo03 {
    public static void main(String[] args) {
        //大于小于返回结果是布尔值,true/false
        int a = 10;
        int b = 20;
        int c = 21;
        System.out.println(a>b);    //false
        System.out.println(a<b);    //true
        System.out.println(a==b);   //false
        System.out.println(a!=b);   //true
        System.out.println(c%a);    //取模=1
    }
}

自增自减(++ --)

  1. a++ 相当于隐藏语句a=a+1 在a++所在语句执行后执行 b=a++//先赋值,再自增

  2. ++a 相当于隐藏语句a=a+1 在++a所在语句执行前执行 b=++a//先自增,再赋值

  3. – 用法类似

幂运算

数学计算类库 Math

Math.pow

package Operator;

public class Dmeo04 {
    public static void main(String[] args) {
        //自增自减
        int a = 3;

        int b = a++;//a = 3, b=3;
        //a=a+1;隐藏
        System.out.println(a);//a=4;
        System.out.println(b);//b=3;

        //a=a+1;
        int c = ++a;    //a=5,c=5;
        System.out.println(c);

        int d = a--;//d=5
        System.out.println(d);//a=4

        int e = --a;//a=3,e=3;

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(e);

        //幂运算
        double pow = Math.pow(2,3);
        System.out.println(pow);

    }
}

逻辑运算

与&&,两个都为T,则为T;

或||,一个为T,则为T;

非!,T变为F。

短路运算

与运算a&&b,若a为false,则b直接跳过,程序返回false。

package Operator;

//逻辑运算符     与或非 交并补
public class Demo05 {
    public static void main(String[] args) {
        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));

        //短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
        System.out.println(d);
        System.out.println(c);
    }
}

位运算

//每位进行与或非
A = 0011 1100
B = 0000 1101

A&B=0000 1100
A|B=0011 1101
A^B=0011 0001	//异或,相同为0,不同为1
~B=1111 0010
//2*8怎么计算最快	分解为2*2*2
//左移右移
//    <<	>>
package Operator;

public class Demo06 {
    public static void main(String[] args) {
        System.out.println(2<<3);//16
        /*
        2 写成8位二进制
        2 = 0000 0010   1左移一位,数字变成2倍
        2<<3位变大2^3倍
        效率极高
         */
    }

}

扩展赋值

//	a+=b,a=a+b

字符串连接符

“+” 加号两侧出现String类型,会自动把其他类型变成String
空字符串在前,先变成字符串再连接,空字符串在后,先计算再变成字符串连接

package Operator;

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

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

        System.out.println(a);//30
        //a=30;b=20;
        System.out.println(""+a+b);//3020
        System.out.println(a+b+"");//50
    }

}

条件运算符

x ? y : z

若x位true,则值为y,否则为z。

package Operator;

public class Demo08 {
    public static void main(String[] args) {
        //条件运算符
        int y = 1;
        int z = 2;
        boolean x = true;
        System.out.package Operator;

public class Demo08 {
    public static void main(String[] args) {
        //条件运算符
        int score = 85;
        String type = score > 60 ? "合格" : "不合格";

        System.out.println(type);//合格
    }
}

包机制

包的本质就是一个文件夹。

一般用公司域名倒置作为包名 如www.baidu.com com.baidu.www

导包:import import com.guyuer.Base.Demo2;导入Base下的Demo2类。 import com.guyuer.Base.*; 导入Base包下所有的类。


JavaDoc

生成API文档

package com.guyuer.Base;

/**
 * @Author GuYuer
 * Version 1.0
 * Since 1.8
 */
public class Doc {
    String name;

    /**
     *
     * @param name
     * @return
     * @throws Exception
     */
    public String test(String name) throws Exception{
        return name;
    }
}

在cmd中操作

  1. 在类所在位置打开cmd命令窗口

  2. 输入javadoc -encoding UTF-8 -charset UTF-8 Doc.java //-encoding 和 -charset设置是防止中文乱码

  3. 在文档目录会生产html文件,打开index.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java基础语法中,标识符是由程序员自己规定的代表一定含义的单词。标识符可以用于标识变量、方法、类等。主要注意的是,标识符不能修改,而且其中的main是一个特殊的标识符,无法自己规定。 在Java基础部分的相关知识讲解中,也包括了关于标识符的内容。 如果你想要判断一个字符串是否是合法的Java标识符,可以使用以下代码作为参考: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner reader = new Scanner(System.in); while (reader.hasNext()) { int flag = 1; String str = reader.nextLine(); char ch; ch = str.charAt(0); int len = str.length(); if (Character.isJavaIdentifierStart(ch)) { for (int i = 1; i < len; i++) { ch = str.charAt(i); if (!Character.isJavaIdentifierPart(ch)) { flag = 0; break; } } } else { flag = 0; } if (flag == 0) System.out.printf("false\n"); else System.out.printf("true\n"); } reader.close(); } } ``` 这段代码可以读取用户输入的字符串,并判断其是否是合法的Java标识符。如果是合法的标识符,则输出true,否则输出false。 希望以上内容能够帮助到你。如果还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【零基础Java】Day-02 基础语法--标识符](https://blog.csdn.net/qq_52681453/article/details/126020455)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Java基础[02-Java基础语法1].ppt](https://download.csdn.net/download/xiaoyoupei/13206691)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [2021级-JAVA02 基础语法1--标识符、常量与变量、数据类型、运算符与表达式](https://blog.csdn.net/weixin_62455462/article/details/126696523)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值