java语法基础

java基础

0.java是解释性语言,C++是编译性语言(java不能编译后直接运行,需要解释器解释)

1.java文件执行

(1)我们编写得到的.java文件必须先经过javac编译为.class文件之后,再跨平台的放到不同的操作系统中运行,如下图;
在这里插入图片描述
(2)可以直接cmd打开.java所在文件夹,命令行直接编译(注:记得文件编码方式要与命令行编码方式一致,gbk)
在这里插入图片描述
(3)cmd命令行中直接输入java 文件名(切记不加后缀)即可运行.class文件;
(4)总结:.java文件经过编译器javac(c代表compile)得到.class文件,将文件编译为JVM(jdk中的java虚拟机)可以识别的字节码文件,再由运行工具java.exe装载到JVM执行;

(5)JDK与JRE与JVM之间的关系:
在这里插入图片描述
(6)环境变量的作用:
在这里插入图片描述

2.java语言细节

(1)java中:包-类-属性,方法;以及变量的命名规则:
参见:https://blog.csdn.net/weixin_41753664/article/details/101862854博主的写法,写的很好!!!
在这里插入图片描述
补:java文件编译时,会为每一个类都生成一个.class文件,可以在cmd命令行指定运行一个类:
在这里插入图片描述

3.常用转义字符

在这里插入图片描述
特别注意\r:回车会直接回到当前行行首,然后继续输出后面内容;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.注释(comment)

(1)单行注释://
在这里插入图片描述

(2)多行注释:
在这里插入图片描述
注:多行注释不允许再嵌套多行注释
(3)文档注释:
格式为:

/**
*@
*@
*@
*/

在这里插入图片描述

5.java常用代码规范

在这里插入图片描述

6.DOS(disk Operate System)磁盘操作系统:了解即可

命令行的指令就是控制DOS的

7.变量

(1)java程序中+的使用在这里插入图片描述
(2)java数据类型
在这里插入图片描述
(3)整数
数的表示范围看不懂的宝儿go去学学计算机组成原理-数据表示那章
在这里插入图片描述
(4)浮点数
在这里插入图片描述
float=1.342f,float类型变量声明时后面一定要加f,double可加可不加!!!
在这里插入图片描述
通常情况下应该用double而不要用float,因为double更精确
浮点数陷阱:2.7不等于8.1/3
(5)字符类型char
在这里插入图片描述
字符类型要用单引号,双引号会被自动识别为字符串类型
(6)布尔类型boolean
在这里插入图片描述
java中的boolean类型变量的值只有True和False,不能像C语言等用0,1可以代替真假
(7)基本数据类型转换
在这里插入图片描述
(8)数据转换注意事项
程序员可以用(int啥的)对数据进行强转,但注意强转有可能导致精度丢失;
(9)String类型数据和基本类型数据之间的转换
在这里插入图片描述
练习:

int a=101;
	double b=99.5;
	String a_String=a+"";
	String b_String=b+"";

	String c_String="123.5";
	double c=Double.parseDouble(c_String);

8.java api文档

在线网站:https://www.matools.com/api/java8可以查看汉化版的api说明文档,说明文档结构 如下,可以直接通过索引检索某个类,也可以先找到该类所在“包-类”的方法去找
在这里插入图片描述

9.java运算符

(1)java中取模(%)的本质是:
a%b=a-a/b*b
在这里插入图片描述

(2)自增自减运算符:

a=1
a=++a//前加是先执行++再赋值
System.out.println(a);//2

a=1
a=a++//后加是先赋值再执行++
System.out.println(a);//1

(3)逻辑运算符
在这里插入图片描述
逻辑与和短路与的区别:
在这里插入图片描述
(4)利用三元运算符求三个数中最大的数

		int a=129;
		int b=35;
		int c=290;
		int max1=a>b?a:b;
		int max=max1>c?max1:c;
		System.out.println(max);

(5)运算符优先级
在这里插入图片描述

优先级从上到下依次变小

10.java中标识符的命名规则在这里插入图片描述

(1)标识符命名规范:规则和规范的区别在于规则不对直接编译出错,规范不对只会导致代码可读性弱;

5de9bc4a026aa.png)

保留字和关键字不要用在自己的变量命名上
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/caed9f6c7d3049c7af3在这里插入图片描述

11.位运算

(1)位运算基础:原码,反码,补码
在这里插入图片描述
(2)七种基本位运算

在这里插入图片描述
在这里插入图片描述

12.流程语句

(1)do-while
在这里插入图片描述
在这里插入图片描述
注意:do-while循环一定会先do一次,再判断,若判断条件为True,会继续执行循环体!!!

	int i=0;
	do{
		System.out.println("The dog is cute");
	}while(i<=10);

13.程序:打印九九乘法表

	for(int i=1;i<=9;i++){
		for(int j=1;j<=i;j++){
			//每行要输出九九乘法表的内容,也就是把*替换成算式
			System.out.print(j+" * "+i+" = "+j*i+'\t');
			//System.out.print("*");
		}
		System.out.print('\n');
	}

在这里插入图片描述

14.程序:打印金字塔和菱形(主要看打印规律)

(1)打印金字塔

int i=1,j=1,k=1;
	//输入金字塔层数
	System.out.println("Please input the floors:");
	Scanner myScanner=new Scanner(System.in);
	int n=myScanner.nextInt();
	//打印金字塔
	for(i=1;i<=n;i++){
		//打印空格
		for(j=1;j<=n-i;j++){
			System.out.print(' ');
		}
		//打印星号
		for(k=1;k<=2*i-1;k++){
			System.out.print('*');
		}
		System.out.print('\n');
	}

在这里插入图片描述
(2)打印空心金字塔

//根据输入层数,打印空心金字塔
	System.out.println("Please input the floors:");
	Scanner myScanner=new Scanner(System.in);
	int n=myScanner.nextInt();
	String space=" ";
	String star="*";
	for(int i=0;i<n;i++){
		//下面是每一行要打印的内容,即每一次for循环的循环体
		//如果是第0行,则需要打印n-1个空格,再加一个星号
		if(i==0){
			System.out.print(space.repeat(n-1));
			System.out.print(star);
			System.out.print('\n');
			continue;
		}
		//如果是第n-1行,则需要打印2n-1个星号
		if(i==n-1){
			System.out.print(star.repeat(2*n-1));
			System.out.print('\n');
			continue;
		}
		//其他行<1>打印n-1-i个空格<2>1个星号<3>2*i-1个空格<4>一个星号
		for(int j=0;j<n-1-i;j++){
			System.out.print(' ');
		}
		System.out.print('*');
		for(int k=0;k<2*i-1;k++){
			System.out.print(' ');
		}
		System.out.print('*');
		//每行结束后要打印一个换行符
		System.out.print('\n');
	}

在这里插入图片描述
(3)打印空心菱形

	//根据输入层数,打印空心菱形
	System.out.println("Please input the floors:");
	Scanner myScanner=new Scanner(System.in);
	int n=myScanner.nextInt();
	//为输出做准备
	String space=" ";
	String star="*";
	for(int i=0;i<n;i++){
		//打印每一行上的内容
		//当行数为第一行和第n-1行时:<1>打印n/2个空格;<2>打印一个星号
		if(i==0||i==n-1){
			System.out.print(space.repeat(n/2));
			System.out.print(star);
			System.out.print('\n');
			continue;
		}
		//其他行:<1>打印|n/2-i|个空格;<2>打印一个星号;
		//<3>打印(n/2-i%(n/2))-1个空格;<4>打印一个星号;
		System.out.print(space.repeat(Math.abs(n/2-i)));
		System.out.print(star);
		System.out.print(space.repeat(n-1-2*Math.abs(n/2-i)));
		System.out.print(star);
		System.out.print('\n');
	}

在这里插入图片描述

15.数组

(1)数组的赋值是地址传递
在这里插入图片描述
(2)一维数组的动态初始化

在这里插入图片描述

(3)二维数组的动态初始化在这里插入图片描述(4)二维数组的内存布局在这里插入图片描述
(5)二维数组语法练习题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

程序:数组冒泡排序

	//冒泡排序:比较相邻两个元素并交换位置,每次可以确定最前面或最后面一个元素
	int[] arr={18,2,95,7};
	System.out.println("Before BubbleSort,the arr is:");
	for(int k=0;k<arr.length;k++){
		System.out.print(arr[k]);
		System.out.print('\t');
	}
	System.out.print('\n');
	int temp=0;
	for(int i=0;i<arr.length;i++){//对4个位置分别进行冒泡
		for(int j=0;j<arr.length-1-i;j++){//比较3次-2次-1次
			if(arr[j]>arr[j+1]){
				//大数往后冒
				temp=arr[j];
				arr[j]=arr[j+1];
				arr[j+1]=temp;
			}
		}
	}
	System.out.println("After BubbleSort,the arr is:");
	for(int m=0;m<arr.length;m++){
		System.out.print(arr[m]);
		System.out.print('\t');
	}
	System.out.print('\n');

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值