一、Java语言概述
Java语言运行机制及运行过程
- java语言的特点
不同操作系统上的JVM不一样。
理解比喻:TFboys在北京、上海、甘肃开演唱会,不同的操作系统,JVM相当于舞台,在不同地方的舞台不一样,TFboys的唱跳相当于JAVA代码,在不同的舞台上都可以进行这一套唱跳。
image.png- java核心机制
java环境搭建
image.png公司中一般不超过8。
image.png image.pngJDK 、JVM、JRE的关系
image.png官方版
image.png- 下载安装
- 配置环境变量
开发初体验
image.pngclass HelloChina {
public static void main(String[] args) {
System.out.println("hello world");
}
}
注释
image.png image.png image.png image.pngAPI文档
image.pngjava8 API文档
https://www.matools.com/api/java8
image.png第一个编程总结
image.png良好的编程风格
image.pngjava常用集成开发环境
image.png二、Java基本语法
关键字和保留字
image.png image.png image.png标识符
image.png image.png变量
image.png image.png image.png- 基本数据类型
- 基本数据类型变量间转换
- 基本数据类型与String转换
- 进制与进制之间的转换
二进制转十进制:
如:11000101,1*20+0+1*22+0+0+0+1*2^6=1+4+64=69
image.png求10111011的十进制:
---->计算机底层都以补码方式存储,所以10111011是补码。最左边是负号位,表示位一个负数。
---->补码-1,反码10111010
---->除符号位,取反,原码 11000101
---->转为10进制 ,1*20+0+1*22+0+0+0+1*2^6=1+4+64=69
---->加上负号,-69
image.png为什么128强转为byte时,结果为-128?
int 128 ----> 0000 0000 0000 0000 0000 0000 1000 0000
强制转化为byte型 ----> 去掉签名的 24位 ,结果为1000 0000 ,即-128
十进制转二进制:
采用除2取余的逆,如:13 。
image.png image.png二进制转八进制/十六进制:
image.png十六/八进制转二进制:
image.png函数转
image.png运算符
image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png1.False x=2,ture y=2
2.False x=2,y=1
3.ture x=2,false y=2—>x=7
4.ture x=2,y=1 —>x=7
image.png image.png image.png image.png image.png image.png image.png image.png image.png程序流程控制
分支结构
- if-else
- swith-case
根据制定月份输出季节:(case条件一类时可以这么输出)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int month = scan.nextInt();
switch (month){
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
}
}
}
image.png
循环结构
image.png image.png- for循环
public static void main(String[] args) {
for(int i=1;i <=150;i++){
System.out.print(i+" ");
if(i%3==0){
System.out.print("foo ");
}
if(i%5==0){
System.out.print("biz ");
}
if(i%7==0){
System.out.print("baz ");
}
System.out.println();
}
}
image.png
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入两个正整数");
int positiveIntOne = scan.nextInt();
int positiveIntTwo = scan.nextInt();
int min = (positiveIntOne<=positiveIntTwo)? positiveIntTwo:positiveIntOne;
// 定义最大公约数
int greatestCommonDivision = 0;
for(int i=1;i<=min;i++){
if(positiveIntOne%i==0&&positiveIntTwo%i==0){
greatestCommonDivision = i;
}
}
// 定义最小公倍数
int leastCommonMultiple = 0;
for(int i=1;i<=positiveIntOne*positiveIntTwo;i++){
if(i%positiveIntOne==0&&i%positiveIntTwo==0){
leastCommonMultiple = i;
break;
}
}
System.out.println("最大公约数:"+greatestCommonDivision);
System.out.println("最小公约数:"+leastCommonMultiple);
}
- while循环
- do while循环
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入整数,输入0表示输入结束");
int positive_count=0;
int negative_count=0;
while (true){
int num = scan.nextInt();
if (num>0){
System.out.println("这是一个正数");
positive_count++;
}
if (num<0){
System.out.println("这是一个负数");
negative_count++;
}
if (num==0){
System.out.println("程序结束");
break;
}
}
System.out.println("正数有:"+positive_count+"个,负数有:"+negative_count+"个");
for(;;)
表示一直循环。相当于while (true)
.
- 嵌套循环
99乘法表
public static void main(String[] args) {
for(int i=1;i<=9;i++){//控制行数
for(int j=1;j<=i;j++){//控制列数
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
100以内的所有质数
public static void main(String[] args) {
Boolean isFlag =true;//标识i是否被j除尽,除尽就修改其值
for(int i=2;i<=100;i++){//遍历100以内的数
for (int j=2;j<=i-1;j++){ //i%j
if (i%j==0){
isFlag = false;
}
}
if(isFlag==true){
System.out.print(i+" ");
}
//内循环结束重置isFlag
isFlag=true;
}
}
质数代码优化
image.png- break continue
带标识的break continue
public static void main(String[] args) {
label:for (int i=1;i<=4;i++){
for (int j=1;j<=10;j++){
if (j%4==0){
// break; //默认跳出当前循环,即内层循环
// continue; //默认跳出当前循环的本次循环,即内层循环的本次循环
// break label; //跳出指定标识label的一层循环
continue label; //跳出指定标识label的一层循环的当次循环
}
System.out.print(j);
}
System.out.println();
}
}
image.png
质数代码优化-二
image.png
网友评论