Java之Visual Studio Code基本运行情况
- * .java–源文件,小星号表示自己拟的文件名;源文件必须与主类名(public class)保持一致,一个源文件有且只能有一个主类;
主方法存在于主类中。 - Java程序编译–执行流程
1. javac (test).java (生成 *.class)
2. java (test)
括号内为自己拟的文件名;即java主类名称,本没有括号 - 如果代码中有中文,则编译命令为
javac -encoding UTF-8 test.java
- 命令行向主方法传参
java 主类名称 参数1 参数2 … - JDK:Java开发程序包,包含JRE,多了编译器javac以及调试工具JConsole,jstack,针对Java程序员
- JRE:java运行时环境,包含JVM以及java核心类库,是运行Java程序的环境,针对使用Java程序的用户
- JVM:Java虚拟机(java移植性的关键)
Java数据类型与运算符
-
1.Java注释
单行注释:// 多行注释:/* */(不推荐) 文档注释:/** */(用在类或者方法上描述类与方法作用以及参数作用)
-
2.Java标示符
驼峰命名法 小驼峰:用于方法名,普通变量名称。 若标示符由单个单词组成,则全小写 int age = 5 若标示符由多个单词组成,除了第一个单词全小写以外, 第二个单词以及以后的单词首字母大写 int myAge = 10; 大驼峰:用于类命名 类名是以大写字母开头的单词;若类名由多个单词组成,则每个单词首字母大写 class Test class MyTest 常量:单词全大写,多个单词间以 _ 分隔 final int MY_AGE = 10;
-
3.Java数据类型划分
-
3.1 八大基本数据类型
数据类型的默认值需要结合类来观察,主方法中变量必须先赋值再使用,不存在默认值
-
3.1.1 数值型
整型:byte(-128--127),short,int(4字节 -2^31--2^31-1) ,long(2^63--2^63-1) 默认值为0 在Java中,任何一个整型常量均为int类型!
整型变量若要声明为long类型,需要在数字后加上l或L(推荐)
Java中小的数据类型与大的数据类型做数值运算时,小的数据类型会自动提升为大的数据类型
eg:10 + 1L;
反之,大的数据类型转换为小的数据类型必须强转,强转可能会丢失数据
byte与int
整型常量若在byte类型的保存范围之内,可以直接赋值给byte变量,无须强转;
若整型常量值超出byte范围,必须强转;
整型变量无论值是否在byte范围内,都需要强转
浮点型:float,double
默认值0.0
小数常量默认也是double类型,若要定义float变量,需要在小数后面追加f或者F
eg:float f1 = 2.5F
描述整数用int,描述小数用double
long一般用于描述日期,时间,内存,文件大小
IO处理使用byte
-
3.1.2 字符型
字符用' '表示,char和int可以相互转换 char转int直接赋值,int转char需要强转 字符型数字与整型数字绝对不相等 Java采用Unicode编码,16进制编码,支持世界上所有语言 GBK(中文编码)gb2312(中文编码)UTF-8(所有语言) char一般用于描述中文(基本忽略) 默认值\u0000
String类初步认识:
描述单个字符用char,描述多个字符用string类;String变量用" “表示;
只要出现字符串,其他任何类型与字符串”+",都会先转为字符串而后做字符串的拼接操作;用()解决
- 3.1.3 布尔型
boolean
默认值false - 3.2 三大引用类型
- 数组,类,接口
默认值为null - 4.运算符
自增自减(++ --)
a++
++a - 三目运算符(*******):
布尔表达式?数值1:数值2 - 比较运算符
< >= <=
- 逻辑运算符:
表示逻辑’或’| ||
在if语句中使用’|'时,表示多个条件都需要判断,即便有表达式返回true,剩余条件仍然需要判断;
短路非:使用"||",只要有条件返回true,剩余条件不再判断
& &&
Java逻辑运算符就短路与,短路非
- 位运算符(&,|,^,~,<<,>>)
- 5.Java程序结构
- 5.1 分支结构
if…else…
if…elseif…
switch(数字|枚举|字符|字符串)
不带break的case语句,会将满足条件后的分支通通走一遍
for(初始化条件1;循环结束判断2;修改循环条件3)
{
//4循环体代码
}
1,2,4,3
循环控制条件
continue:
跳出本次循环直接进入下一次循环
break:
跳出整个循环
- 5.2方法定义(直接在主方法中调用的方法)
public static 方法返回值 方法名称([参数类型 变量…])
{方法体代码;
…
[return 返回值]
}
void关键字声明的方法没有返回值,可以return;结束函数调用
-
5.3方法重载(*******)
定义:方法名称相同,参数的个数或类型(顺序)不同,与方法返回值无关编码规范:重载函数的返回值类型一定保持相同
Java数组-引用数据类型
-
1.数组初始化
-
1.1动态数组化(声明并开辟数组)
数组类型[] 数组名称 = new 数据类型[长度]
eg:int[] data = new int[5];声明并开辟一个长度为5的数组a.数组通过下标索引来取得元素,下标默认从0开始; 数组下标超出数组长度,数组越界异常(运行时异常) b.数组中每个元素都有默认值,默认值是该数据类型默认值 c.数组名称.length:取得数组长度 d.数组遍历,推荐使用for-each循环(仅限于数组内容读取), 要修改数组内容。还是要使用常规for循环 for(int x : data) {...} 出现new,在堆上新开辟空间 数组属于引用数据类型,必须在使用前先初始化。 否则会NullPointerException(运行时异常)
引用传递:多个栈内存指向同一块堆内存
eg:x[0] = 20; == int[] temp = x;
-
1.2 数组静态初始化
简约格式:
数据类型[] 数组名称 = {值,值…}完整格式(推荐):
数据类型[] 数组名称 = new 数据类型[]{值,值…}
eg:
int[] data = new int[]{1,3,5,7,9,10};
在数组定义时直接设置内容,根据值的个数确定数组长度,且长度不可修改
- 1.3二维数组
动态初始化
数据类型[][]数组名称 = new 数据类型[行个数][列个数]
eg:
//开辟行数为3,列数为4的整型数组
int[][]data = new int [3][4]
静态初始化
数据类型[][]数组名称 = new 数据类型[][]{{第一行值},{第二行值}…}