目录
Java是1995年SUN公司发布,如今被Oracle收购。
Java概述
简述:
Java是1995年SUN公司发布,如今被Oracle收购。
Java8、Java11、Java17是LTS版。现在如今我们主要使用Java8
Java 为什么流行?
Java是一门半编译半解释的面向对象语言。
Java是一门跨平台、"半解释半编译"的“面向对象”语言。
- 简单
- 安全
- 开源
- 多线程
- 半解释半编译
- 面向对象
- Java由于虚拟机JVM(Java Virtual Machine称为Java虚拟机。它用于解释Java的字节码文件。)的存在,所以可以跨平台运行
![](https://i-blog.csdnimg.cn/blog_migrate/846aaf6f2d44ad44453bb6feafa3f018.png)
Java的安装和环境搭建
![](https://i-blog.csdnimg.cn/blog_migrate/6f782dc65d6e5c35700201575274dd81.png)
注意每个人电脑处理器字长,主流64位,选择X64,有些是32位选择X86
第一个Java程序
编译软件直接给我编译边解释运行,不用我们手动编译
新建new java class Hello
Java代码中的注意事项
编程语言的命名规则
驼峰命名法
帕斯卡命名法
Java中的标识符
Java中的数据类型
原始类型
引用类型
- 数组
- 类
- 接口
原始类型之间的数据类型转换
隐式类型转换(自动类型转换)
变量
保存数据的内存区域,其中的数据可以变化。
定义变量
数据类型 变量名;
变量赋值
变量名=值;
=右边的值有默认的数据类型。
整数默认为int,小数默认double类型。
变量初始化
数据类型 变量名 = 值;
变量需要定义、赋值后才能使用。
int i;
System.out.println(i);
运算符
算术运算符
//+ - * / %
//+两端都是数值是当做相加,有一端是字符串时当做拼接
//两个整数相除/,结果只保留整数部分。10/3=3;
关系运算符
//> < >= <= == !=
//关系运算的结果都是布尔型
逻辑运算符
//&& || !
//&&和||符号两端是两个表达式
//&&和||称为短路运算符,当第一个表达式能确定结果时,不再判断第二个表达式
赋值、复合赋值运算符
//= += -= *= /= %=
//给整型变量赋值,=右边可以是整型或字符型
//给字符型变量赋值,=右边通常是一个单引号引起来的字符,也可以是一个整数或转义字符
//a*=b+c 相当于 a=a*(b+c)
自增、自减运算符
//++ --
//非单独成行,符号在前,先+1或-1,再使用
//非单独成行,符号在后,先使用,再+1或-1
条件运算符
//表达式1?表达式2:表达式3
//双分支语句,先执行表达式1,结果为true时执行表达式2,结果为false时执行表达式3
运算符的优先级
小括号>>单目运算符(!、++、--)>>算术>>关系>>逻辑>>条件>>赋值
int year=2000;
String res=(year%4==0&&year%100!=0)||year%400==0?"闰年":"平年";
一个表达式中,如果有不同的数据类型参与运算,最终的结果以表达式中字节最大的数据类型为准。
int a=12;
double b=3;
double res=a/b;
double res=10.0/4;
double res=10/4.0;
double res=(double)10/4;
条件语句
if语句
小括号中都是一个表达式,最终结果为布尔型
-
单分支
if(){ }
-
双分支
if(){ }else{ }
-
多分支
if(){ }else if(){ }else if(){ }else{ }
-
嵌套
if(){ if(){ } }else{ if(){ } }
在方法的if语句中出现return,就不再执行后续的代码。
如果方法的返回值是void,return后无需添加值,如果不是void,return后必须添加值。
可以将if嵌套改造为if-return。
public static void main(String [] args){
if(2>1){
return;//提前结束main方法
}
System.out.println("程序结束");//这句话不会输出
}
public int chu(int a,int b){
if(b==0){
System.out.println("0不能作为除数");
return 0;
}
return a/b;
}
switch语句
switch(非long整型、char、String、enum){
case 可能的值:
break;
case 可能的值:
break;
case 可能的值:
break;
case 可能的值:
break;
default:
break;
}
可以不写break,会继续执行后续case后的内容。
如果能例举出一件事情的分支,建议使用swtich语句。
比如打印菜单,功能选项,日期判断等
如果一件事情的分支是范围时,只能使用if语句。
循环语句
while
while(循环条件){
循环体
}
do-while
do{
循环体
}while(循环条件);
for
for(定义循环变量;循环条件;更新循环变量){
循环体
}
while和for循环如果条件一开始就不成立,一次都不执行。do-while循环会至少执行一次后再做判断。
循环条件都是布尔值。
当已知循环次数时,建议使用for循环;未知循环次数时,建议使用while循环;先执行一次后再判断时使用do-while循环。
循环控制(比较重要)
- break终止整个循环
- 如果循环中有swtich语句,switch中的break只能终止switch,不能终止循环。
- continue停止本次循环,进行下次循环。(不再执行continue后续的代码)
- break和continue通常配置if语句使用
循环嵌套
在循环中继续循环。外层循环执行一次,内层循环执行一轮。
应用例子:
//用*打印矩形
//将循环一行这件事再循环5次
for (int n = 1; n <= 5; n++) {
//循环打印一行
for (int i = 1; i <= 10; i++) {
System.out.print("*");
}
System.out.println();
}
注意:循环嵌套不要嵌套太多层。
循环总结
数组
一组类型相同的数据的有序集合。在内存中是一块连续的区域。
每个数据都称为元素,每个元素有自己的唯一索引,从0计数。
数组一旦定义后,其数据类型和大小不可改变,无法获取当前数组中的元素数量。
数组的定义
数据类型[ ] 数组名 = new 数据类型[数组大小];
数组的初始化
- 数据类型[] 数组名 = new 数据类型[]{元素1,元素2...};
- 数据类型[] 数组名 = {元素1,元素2...};
数组的取值和赋值
通过"数组名[下标]"访问。
String[] nameList={"admin","qwe","ez"};
//赋值
nameList[1]="小是明";
//取值
String name=nameList[0];
System.out.println(name);
数组特点
-
数组可以通过“数组名.length”获取其长度
-
数组定义后,如果没有对其赋值,会有默认值
- 整型默认0,浮点型默认0.0,字符默认空白字符,布尔型默认false,引用类型默认null
-
通常使用增强for循环遍历数组
-
String[] nameList={"admin","qwe","ez"}; for(String name : nameList){ System.out.println(name); }
穷举法
//鸡兔同笼 笼子里有若干鸡和兔,头一共35,腿一共94,鸡兔各几只?
for (int ji = 0; ji <= 35; ji++) {
for (int tu = 0; tu <= 35; tu++) {
if (ji + tu == 35 && 2 * ji + 4 * tu == 94) {
System.out.println("鸡:" + ji + "兔:" + tu);
}
}
}
//百元买百蛋 花够100元买够100个蛋 鸡蛋3个1元 鸭蛋1个3元 鹅蛋1个5元
for (int jd = 0; jd <= 100; jd++) {
for (int yd = 0; yd <= 100; yd++) {
for (int ed = 0; ed <= 100; ed++) {
//整数间相除为整数,这里鸡蛋的价格需要用浮点数表示
if (jd + ed + yd == 100 && 3 * yd + 5 * ed + jd / 3.0 == 100) {
System.out.println("鸡蛋:" + jd + "鸭蛋:" + yd + "鹅蛋:" + ed);
}
}
}
}
综上所述以上是一些比较重要的笔记+总结,Java基础阶段很多需要积累和练习,很多不懂的地方,前期配置环境变量等,报错等感谢同学、老师期间帮忙解决一切遇到大问题 。