Java基础语法


笔记教程来源于BiliBili UP主:遇见狂神说。


Java基础语法

1. Java程序的简单认识

public class Hello { //Hello是类名 

    static final String NAME = "张三";    //static final 是修饰符,String是数据类型,这里的NAME是常量名

    public static void main(String[] args) {    //这一行是程序的入口,相当于程序从这里开始执行
        int age = 10;   //int是数据类型,age是变量名

        //输出一个Hello World!
        System.out.println("Hello World!");
        System.out.println(NAME);

        Hello hello = new Hello();  //实例化对象(后面有讲实例化是什么)
        hello.helloWorld();         //实例化后的对象hello,调用helloWorld方法
    }

    public void helloWorld(){   //helloWorld()是方法名
        System.out.println("hello");
    }
}

2. 注释

注释分为三类:单行注释,多行注释,文档注释

单行注释
//	单行注释
多行注释:
/*
*/
文档注释:
/**
*/

3. 标识符

标识符对程序代码中的包、类、方法、参数、变量,起的一个名字,用来称呼这些内容。

标识符的规则:

  1. 标识符可以由大小写字母、数字、下划线、美元符号组成
  2. 不能以数字开头
  3. 不能包含空格特殊字符
  4. 不能是关键字

合法的标识符:

username
username123
_username
$username

非法的标识符:

123username	//不能以数字开头
class		//不能是关键字
Hello World	//不能包含空格特殊字符

4. 关键字

java中的关键字是事先定义好并赋予一定的特殊含义的单词,也称作保留字。

abstractassertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile

注意:以上表格内的单词不可以作为标识符(即包、类、方法、变量、参数名)!!!

5. 变量

变量:变量就是可以变化的量

Java是一种强类型语言,每个变量都必须提前声明类型

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

注意事项:

  1. 每个变量都有类型,类型可以是基本数据类型,也可以是引用类型
  2. 变量名必须是合法的标识符
  3. 变量声明是一条完整的语句,因此每一个生命必须以分号结束!

变量声明格式

数据类型 变量名 = 值 ;
type varName = value ;

作用域

  1. 类变量:写在类里面,静态变量,定义变量时,数据类型前加static关键字,可以再任何方法使用
  2. 实例变量:写在类里面的变量,调用时需要先实例化对象,然利用对象调用变量
  3. 局部变量:写在方法里面的变量,可以直接在方法里面调用,需要先赋值
static int lei;//定义类变量
int shiLi;//定义实例变量
public static void main(String[] args) {
    int juBu = 0;//定义局部变量
    System.out.println(lei);//使用类变量
    
    Demo08 demo08 = new Demo08();
    System.out.println(demo08.shiLi);//使用实例变量
    
    System.out.println(juBu);
}

6. 常量

常量:常量是一种特殊的变量,它的值被设定后,在程序运行期间不可以改变!

常量名一般用大写字符表示。

常量声明格式

final 数据类型 变量名 = 值 ;
final type varName = value ;

注意:final与static同时使用时,不区分前后顺序!

7. 常量与变量的声明规则

  1. 所有变量、方法、类名:言简意赅,见名知意!
  2. 类成员变量:首字母小写和驼峰原则:monthSalary
  3. 局部变量:首字母小写和驼峰原则
  4. 常量:大写字母和下划线:MAX_VALUE
  5. 类名:首字母大写和驼峰原则:Man,GoodMan
  6. 方法名:首字母小写和驼峰原则:run(),runRun()

8. 数据类型

基本数据类型

  1. byte:在内存中占1个字节,取值范围:-128~127,默认值:0
  2. short:在内存中占2个字节,取值范围:-32768~32767,默认值:0
  3. int:在内存中占4个字节,取值范围:-231~231-1即-2147483648~2147483647,默认值:0
  4. long:在内存中占8个字节,取值范围:-263~263-1,默认值:0即-9223372036854775808~9223372036854775807。long类型在数字最后要加L
  5. float:在内存中占4个字节。float类型在数字最后要加F,默认值:0.0
  6. double:在内存中占8个字节,默认值:0.0
  7. char:在内存中占2个字节。在计算机中,一个汉字占两个字节,默认值:’\u0000’
  8. boolean:在内存中占1位,仅有true与false两个值,默认值:false
//整数类型
byte num1 = 10;     //在内存中占1个字节,取值范围:-128~127
short num2 = 200;   //在内存中占2个字节,取值范围:-32768~32767
int num3 = 3000;    //在内存中占4个字节,取值范围:-2^31~2^31-1
long num4 = 40000L; //在内存中占8个字节,取值范围:-2^63~2^63-1。long类型在数字最后要加L
//小数类型(浮点型)
float num5 = 3.1F;  //在内存中占4个字节,在数字最后面要加F
double num6 = 4.6;  //在内存中占8个字节
//字符类型
char z = '中';      //在内存中占2个字节,因为中国汉字两个字节才可以表示一个汉字
//布尔值类型
boolean flag = true;//在内存中占1位,只有true和false两个值
boolean flag2 = false;

引用数据类型

类 Class

接口 Interface

数组 Array

9. 类型转换

八大基本数据类型存在类型转换优先级,由低到高顺序分别是:

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

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

强制转换

强制转换:由 高 --> 低

int i = 127;//高
byte b = (byte) i;//低
//由高到低的强制转换,需要加  (数据类型)变量名 

自动转换

自动转换:由 低 --> 高

byte b = 127;
int i = b;
//由低到高的自动转换,不需要加转换形式

类型转换注意事项

注意点:

  1. 不可以对布尔值类型(boolean)进行数据转换。

    ​ 原因:boolean的单位是位( bit ),不是字节。

  2. 不能把对象类型转换为不相干的类型。

    ​ 举例:可以将 苹果 转换成 香蕉 (水果类),但是不可以将 苹果 转换成 肉类

  3. 在高容量转换为低容量时,要进行强制转换。

  4. 转换的时候可能会有精度丢失,或内存溢出!

//内存溢出
int i = 128;
byte b = (byte) i;
System.out.println(i);//输出结果:128
System.out.println(b);//输出结果:-128,原因:byte范围是 -128~127

//精度丢失
int n1 = (int) 43.5;
int n2 = (int) -27.6f;
System.out.println(n1);//输出结果:43
System.out.println(n2);//输出结果:-27

10. 运算符

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

11. 包机制

为了方便快捷的组织类,Java提供给用户包机制,用于区别类名的命名空间。

包语句的语法格式为:

package pkg1.pkg2.pkg3....;

一般将公司域名倒置作为包名,比如百度:www.baidu.com,则百度的包名规范为:

package com.baidu.pkg1.pkg2.pkg3....;

为了可以使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import”语句可完成此功能。

import package1.package2.classname;//classname为具体的某一个类
import package1.package2.*;//*为通配符,代表导入package2下的所有类
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值