Java基础语法(一)

一、JVM 可以理解成一个可运行Java 字节码的虚拟计算机系统
a.它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信
b.对于不同的运行平台,有不同的JVM

JVM屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。

二、垃圾回收器(GC)

三、JRE的三项主要功能:
加载代码:由类加载器(class loader)完成
校验代码:由字节码校验器(byte code verifier)完成;
执行代码:由运行时解释器(runtime interpreter)完成;
——————————————————————————————————————————————————————
代码注释:
文档注释:
/**
*这是程序的入口
*/

//单行注释:

/*
多行注释
*/

代码语句分类:

1.结构定义语句
大括号

2.功能执行语句:必须以英文分号结束
只能写在main里
——————————————————————————————————————————————————————

🌟二进制:计算器转换十进制

一个byte 的二进制最大为 11111111 (8位),转换成十进制最大为255.

🌟变量:

变量的分类

按数据类型划分:

基本数据类型变量(面试官非常喜欢问):
8种

引用数据类型变量:

按被声明的位置划分:

局部变量:方法或语句内部定义的变量

成员变量:方法外部、类的内部定义的变量

特别注意:类的外面不能有变量的声明

🌟数据类型,变量如何定义和使用

由于变量记录的数据内容大小不同,导致所需的存储单元大小不同,在Java语言中使用数据类型的概念加以描述。

字节b 是计算机存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。Java中的字节是八位字节,即它包含八位的二进制数。

8种基本数据类型:
长整型long是8个字节,int 是4个字节

引用数据类型:
在这里插入图片描述

标识符:
Java 对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。

规则如下:

1.由字母、数字、下划线 __ 美元符号 $ 组成(不建议用中文)
2.不能以数字开头(可以使用数字)
3.区分大小写
4.长度无限制
5.不能是Java 中的保留关键字

标识符命名习惯:见名知意

方法命名规范与标识符命名规范相同,如果一个方法或变量,命名时要用到多个单词,首单词首字母要小写,其他单词首字母要大写,用于区分多个单词。

🌟创建变量:

Package day01_Demo;

Public class Demo1 {

public static void main(String[] args){
	//创建变量的语法:数据类型 变量名 = 初始化值;
	int a = 20;
	//创建变量暂不赋值的语法:数据类型 变量名;
	int b;

	//创建字符串变量;
	String s = “abcde”;
	//重新给变量赋值的语法,变量名 = 值;
	a = 30;

	System.out.println ()

}
}

程序语句中出现红色表示错误,黄色表示后面未使用建议删除

🌟变量调换练习步骤:
通过第三方变量的方式,进行了替换

1.使用第三方变量c 记录a 的值
c = a;

2.将变量b的值给a
a=b;

3.将变量c记录的原来的值,给到b
c=b;

🌟数据类型的转换:
自动类型转换:
容量小的类型自动转换成容器大的数据类型

强制类型转换:
容量大的类型转换成容量小的数据类型,有可能出现溢出情况,要加上强制转换符
byte b = 127;
int i = b; (✅因为 byte占用空间1个字节,而int是4个字节,小杯子往大杯子里倒)

b=i (❌ 系统会报错,不允许 大杯子往小杯子里倒,有可能导致精度丢失,除非内容不多字节判断。如果想要强制转换有可能要加上强制转换符:b = (byte)i; )

🌟double 和 float变量定义:
Float 类型变量在定义时需注意,我们直接写出的浮点数字,默认类型是double
float f1 = 10.1; 会报错,因为默认的double 类型占用内存8个字节,而float 占用4个字节,大杯子倒入小杯子会有溢出。

如何直接写出float 类型:
可以在浮点数字后面加入f,表示写出的数字类型是float,不会报错也不需要强转。
float f1 = 10.1f;

🌟long 类型变量定义需注意:我们直接写出的整形数字,默认类型是int,当值过大时,会提示出错。
如何直接写出long类型变量:
我们在整型数字后面加入l,来表示写出的整形数字是long类型
long l1 = 2200000000l;

🌟char类型变量:
char c1 = ‘A’;
要用单引号,且只能引一个字符
———————————————————————————————————————————————————————
🌟方法:
方法的主要要素:权限修饰符,方法名,参数列表和反返回值。

🌟格式:
权限修饰符 返回值类型声明 方法名称(参数列表){
方法中封装的逻辑功能;
return 返回值;

}

访问修饰符 同一个类 同包 不同包,子类 不同包,非子类

private ✅

默认 ✅ ✅

protected ✅ ✅ ✅

public ✅ ✅ ✅ ✅

返回值详解:
方法调用结束后可以返回一个数据,称之为返回值。
方法在声明时必须指定返回值类型。
通过return 语句返回, return 语句的作用在于结束方法且将数据返回。
如果方法没有返回值(即方法不需要返回数据),需将返回值类型声明为void.
🌟方法无返回值的结构:
package day01_test1{ //先写一个包

public class Demo1{      //包里包含一个类

	public static void main(String[] args){
		//类里包含一个程序开始入口
	在这个入口里调用方法,直接会打印出结果
	say();
	}

		//类里还包含一个与开始入口平行位置存在的方法
	public static void(无返回值 )say(){       
		System.out.println(“床前明月光,”);
		…….}
}

}

🌟方法有返回值的结构:
package day01_test1{ //先写一个包

public class Demo1{      //包里包含一个类

	public static void main(String[] args){
		//类里包含一个程序开始入口
	在这个入口里调用方法,
	int num = sum(10,20);     //如果开始时我给方法传入一个值(10,20),
					   我会获得一个返回值结果num;
	System.out.println (num); //开始入口里包括打印语句,打印返回值结果
	}

		//类里还包含一个与开始入口平行位置存在的方法
	Public static              int                     sum      (int x, int y){
	//权限修饰符 静止 返回值类型声明  方法名 (参数列表)
			int s = x+y; // 方法中封装的逻辑功能
			return s;    //返回值  
		}
}

}

求两个int 数据的和的方法:

Package day01_Demo;

Public class Demo2 {
public static void main(String[] args){
int num = sum(20,30);
System.out,println(num);
}

Public static int sum (int x, int y){
//权限修饰符 静止 返回值类型声明 方法名 (参数列表)

int s = x+y; // 方法中封装的逻辑功能
return s;    //返回值

}
}

🌟算数运算符:
int i = 10;
System.out.println(++i);先自增,再打印
System.out.println(i);

结果为11,11

int i = 10;
System.out.println(i++);先打印,再自增
System.out.println(i);

结果为10,11

🌟赋值运算符:
a+=b; 相当于 a=a+b;
a-=b;…
a*=b; …
a/=b; …
System.out.println(a);

🌟比较运算符/关系运算符:
!=

=
<=
🌟逻辑运算符:
链接多个布尔型结果的表达式
& 与 两边结果均为真,结果才为真
&& false && true ——false 短路与 如果左边结果为false,可过即为false, 右边不再参与运算
| 或
| | false && true——true 短路或 如果左边运算结果为true,右边不再运算
^异或 true^false —— true 两边运算结果不相同,结果为真;两边运算结果相同,结果为假。(很少用)
注:在计算机中默认1为真,实际是只要非零即真,0为假。

🌟字符串连接符:(加号+为内容连接符)
String text1=“Hello”;
String text2=text1+100;

System.out.println(text2);
结果:Hello100

🌟三目运算符:
//boolean 结果表达式? 表达式1 :表达式2
如果布尔值为true, 结果为表达式1产生的运算结果。
如果布尔值为false,则整个三目运算符结果为表达式2的结果。

示例:
Int a = 10;
int b = 20;
System.out.println(a<b?”a小于b”:”a大于b”);

🌟操作符优先级(了解)

🌟变量作用域:
代码分为结构定义语句和功能执行语句。
1.结构定义语句即为一组 { }中的内容;
2.超出这一组大括号的变量值程序找不到,会被当作垃圾释放掉。
3.平级的大括号之间不能交叉使用变量。
4.大括号中间的内容叫做变量a的作用域。
5.大括号外部的变量可以被打括号内部使用,但是内部的被保护不能被外部方法使用。6.成员变量不能被方法使用。
功能执行语句必须以分号结尾。

🌟
🌟转义字符:
“ ”表示字符结束的标志,
\” 代表一个双引号
\’代表一个单引号
\n 换行
\r 回车
\t 水平制表,用于对齐
\v 垂直制表
\ 代表一个反斜线字符 ,使转义字符无效

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值