Java概述
Java在1990年由SUN公司推出,2009年被Oracle收购,之后都由Oracle进行更新维护。Java虽然是多年前的产品,但是由于Java简单,安全,开源,多线程,半编译半解释,面对对象的优点所以现在也是很流行。
Java分为JavaME(Java微型版,现如今已淘汰),JavaSE(Java标准版,Java的核心),JavaEE(Java企业版,用于开发WEB应用)
Java编译环境
安装Java后,会安装JVM(Java虚拟机)以及JDK(Java开发工具包)和JRE(Java运行环境)。就目前而言当前长期维护版为Java8,Java11,和Java17。
以下是系统变量设置:
java运行过程
编辑的是源文件,称为.java文件。通过javac名利进行编译,生成同名的。class字节码文件在虚拟机上解释改字节码文件运行。
public class Test{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
命名规则
1.编程语言的命名规则:
驼峰命名法:除首字母外,其他单词首字母大写。如:userName;(一般定义方法名和变量名时使用)
帕斯卡命名法:所有单词首字母大写。如:StuendClass;(一般定义类名时使用)
2.标识符命名规则:
(1).标识符使用字母,数字,下划线和$组成。
(2).不能以数字开头。
(3).不能使用Java中的关键字(保留字)。
Java关键字:
数据类型
整型:byte(8位;字节),int(32位;整型),short(16位;短整型),long(64位;长整型,数字后加l或L)。
浮点型:float(单精度浮点数,数字后加f或F),double(双精度浮点数)。
字符型:char(可以是一个单引号的字符或者是数字,也可以是一个ASCII码表中的数字或者是转义字符)。
布尔型:boolean(first或true)。
类型转换
隐式类型转换(自动类型转换):小字节的数据类型的变量保存到大字节的数据类型的变量中,如:short s=10;int y=s;一般不会有数据的变化。
显式类型转换(强制类型转换):大字节的数据类型的变量保存到小字节的数据类型的变量中,
如:int s=1000;byte y=(byte)s;若强制转换,则可能改变数据的值,输出y=-24。
运算符
算术运算符:+(加),-(减),*(乘),/(除),%(取余)。
关系运算符:>(大于),<(小于),>=(大于等于),<=(小于等于),!=(不等于),==(等于)。
逻辑运算符:&&(与),||(或),!(非)。
位运算符:&(按位与运算),|(按位或运算),^(按位异或运算),>>(按位右移),<<(按位左移)。
赋值和复合赋值运算符:=(等于),+=(加等于,i+=10;相当于i=i+10;),-=(减等于),*=(乘等于),/=(除等于),%=(求余等于)。
自增自减运算符:++(自加1,若是++i;则先加再用,若是i++;则先用在加,自减也是这样),--(自减1)。
运算符优先级
条件语句
if语句
1.单分支if语句
if(i==0){ //条件,正确执行括号中语句,错误不执行
System.out.println("单分支语句;");
}
2.双分支if语句
System.out.println("输入四位会员号码");
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
if ((number % 10 + number / 100 % 10) % 8 == 0) {
System.out.println("一等奖");
}else if ((number % 10 + number / 100 % 10) % 5 == 0) {
System.out.println("二等奖");
}else if ((number % 10 + number / 100 % 10) % 3 == 0) {
System.out.println("三等奖");
}else System.out.println("谢谢参与");
3.if嵌套
Scanner sc = new Scanner(System.in);
System.out.println("输入年份");
int year = sc.nextInt();
System.out.println("输入月份");
int month = sc.nextInt();
if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
System.out.println("29天");
} else System.out.println("28天");
} else if (month == 1 || month == 3 || month == 5 || month == 6 || month == 7 || month == 8 || month == 10 || month == 12) {
System.out.println("31天");
} else System.out.println("30天");
switch语句
System.out.println("请输入");
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
switch (number){
case (1):
System.out.println("进入注册功能"); //可以不写break,但会继续执行后续case后的内容
break;
case (2):
System.out.println("进入登入功能");
break;
case (3):
System.out.println("进入提出功能");
break;
}
whlie语句 do-whlie
whlie(true){ //whlie语句,小括号里是判断条件
int i=0;
i++;
System.out.println(i+"/t");
}
d0{ //do-whlie语句,至少执行括号里的一次
int i=0;
i++;
System.out.println(i+"/t");
}whlie(true)
循环语句
其中break(终止当前循环),contince(终止当前这一次循环),return(直接结束main函数)
whlie循环,和之前的while语句一样。
for循环
int s=1;
for(int i=9;i>=1;i--){ //for循环
s=2*(s+1);
System.out.println(i+"-----"+s);
}
int sum=0;
for (int i=1;i<10001;i++){ //嵌套for循环
for(int j=1;j<i;j++){
if(i%j==0){
sum+=j;
}
}
if (sum==i) System.out.print(i+"\t");
sum=0;
}
数组
// 定义数组
int[] name;
// 初始化数组
name = new int[]{1, 2, 3, 4}; //静态赋值
int[] age = new int[6]; //动态赋值
// 快捷遍历数组,name.for
for (int i : name) {
System.out.print(i+"\t");
}
System.out.println("");
数组要是没有赋值,默认有初始值。
其中有数组工具类Arrays: