Java从入门到实战总结-1.2、Java基础语法

Java从入门到实战总结-1.2、Java基础语法


1、二进制

  • 计算机中的数据都以二进制数字保存。

  • 二进制:逢二进一。即只有 0、1 两个值。

如:十进制的 10 在计算机内保存为二进制的 1010

  • 计算机中信息的存储单位

位(Bit):表示一个二进制数码 0 或 1,是计算机存储处理信息的最基本的单位。

字节(Byte):一个字节由 8 个位组成。它表示作为一个完整处理单位的 8 个二进制数码。

(1)、补码

事实上,计算机内的二进制数值是以补码形式表示的。

补码:

一个正数的补码和其原码的形式是相同的。

负数的补码是:将该数的绝对值的二进制形式,按位取反再加 1。

由此可知,二进制补码数值的最高位(最左位)是符号位:该位为 0,表示数值为正数;该位为 1,表示数值为负数。

10 = 00000000 00000000 00000000 00001010

-10 = 11111111 11111111 11111111 11110110

主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最

高位(符号位)有进位,则进位被舍弃。

(2)、二进制和十进制之间的互换
  • 二进制数转换成十进制数

按权相加:把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。

例:原码 1011.01 = 1× 23 + 0×22+1×21+1×20+0×2-1+1×2-2

= 8+0+2+1+0+0.25

=11.25

  • 十进制转换成二进制

整数部分: "除 2 取余,逆序排列"法
小数部分: "乘 2 取整,顺序排列"法

整数部分小数部分
2 890.625
2 44 … 1X 2 1.25
2 22 … 0X 2 0.5
2 11 … 0X 2 1.0
2 5 … 10.625 0.101
2 2 … 1
2 1 … 0
0 … 1
89 1011001
(3)、十六进制

二进制表示法太冗长,所以在程序中一般喜欢用十六进制。

十六进制:基数为十六,逢十六进一。它用 abcdef 表示从 0-9 之上的值。

Java 中十六进制数据要以 0x 或 0X 开头。如:0x23D

十六进制转换成二进制只需将每个十六进制数字替换为相对应的四个二进制位即可。

二进制十六进制
00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
1010A
1011B
1100C
1101D
1110E
1111F
(4)、八进制

八进制:基数为八。

Java 中八进制数据要以 0 开头。如:0123

八进制转换成二进制:只需将每个八进制数字替换为相对应的三个二进制位即可。

现在的计算机系统很少用八进制的了。

二进制八进制
0011
0102
0113
1004
1015
1106

2、变量概述

变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。由于该存储单元中的数据可以发生改变,因此得名为"变量"。 (所以我们这里可以以内存去思考程序,建立一个数据流的思维,这在汇编和反编译的时候将会非常有用)

变量分类:

按所属的数据类型划分:

基本数据类型变量

引用数据类型变量

按被声明的位置划分:

局部变量:方法或语句块内部定义的变量

成员变量:方法外部、类的内部定义的变量

特别注意:类的外面不能有变量的声明

3、数据类型和变量

(1)、数据类型

由于变量记录的数据内容大小不同, 导致所需的存储单元大小不同,在 Java 语言中使用数据类型的概念加以描述 .

字节是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。Java 中的字节是八位的字节,即它包含八位的二进制数。

在这里插入图片描述

类型占用内存值范围(含边界值)默认值
整数型(int)4 字节-2 147 483 648 ~ 2 147 483 647(稍大于 20 亿)0
短整数型(short)2 字节-32 768 ~ 32 7670
长整数型(long)8 字节-9 223 372 036 854 775 808L ~ 9 223 372 036 854 775 807L0
字节型(byte)1 字节-128 ~ 1270
浮点型(float)4 字节-3.40292347E+38-3.40292347E+380.0f
双 精 度 型(double)8 字节-1.79769313486231570E+308-1.79769313486231570E+3080.0d
布尔型(boolean)1 字节true 或 falsefalse
字符型(char)2 字节‘ \u0000 - u\ffff ’‘\u0000 ’
(2)、标识符

Java 对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。

规则如下:

  • 由字母、数字、下划线(_)和美元符号($)组成。

  • 不能以数字开头。

  • 区分大小。

  • 长度无限制。

  • 不能是 Java 中的保留关键字。

标识符命名习惯:见名知意。

示例:

合法标识符:HelloWord、username2、user_name、_userName、$abc_123

非法标识符:2UserName、user#Name、Hello World、class

(3)、关键字

Java 中有一些赋予特定的含义,有专门用途的字符串称为关键字(keyword)。全部是小写。

在这里插入图片描述

保留字:没有定义用途,但保留备用。

goto、const

4、变量调换

(1)、利用中间变量来交换
package day02_test1;

public class Demo1 {
	/**
	 * 任务:
	 * 	将下面的变量a和变量b的值通过运算,进行调换
	 */
	public static void main(String[] args) {
		int a = 10;
		int b = 20;
		
		//通过第三方变量的方式,进行了替换
		int c = 0;
		//1. 使用第三方变量c记录a的值
		c = a;
		//2. 将变量b的值  给a
		a = b;
		//3. 将变量c记录的a原来的值 给b
		b = c;
		System.out.println(a);
		System.out.println(b);
	}
}

5、数据类型转换

boolean 类型不能转换成任何其它数据类型。

自动类型转换: 容量小的类型自动转换成容量大的数据类型

byte,short,int -> float ->long ->double

byte,short,int 不会互相转换,它们三者在计算时会转换成 int 类型

强制类型转换: 容量大的类型转换成容量小的数据类型时,要加上强制转换符

long l = 100L;

int i = (int)l;

有可能造成精度降低或数据溢出,使用时要小心。

6、double和float变量定义

1、float类型变量定义时需要注意:我们直接写出的浮点数字,默认类型是double,会提示需要强转

2、解决方法:在浮点数字的后面加上f,来表示写出的数字类型是float

float f1 = 10.1f;

7、long变量定义

1、long类型变量定义时需要注意:我们直接写出的整形数字,默认类型是int,当值超过int范围时会出错

2、解决方法:在整形数字后面加入l,来表示写出的数字类型是long

long l1 = 220000000l;

8、char变量使用

使用单引号,可以参与数字运算。

char c1 = 'A';
System.out.println(++c1);

9、ascII码表

在这里插入图片描述

10、方法的使用-简述

方法用于封装一段特定的逻辑功能。方法的主要要素有:权限修饰符 方法名、参数列表和返回值。

格式:

权限修饰符 返回值类型声明 方法名称(参数列表){

​ 方法中封装的逻辑功能;

​ return 返回值;

}

权限修饰符详解

在这里插入图片描述

返回值详解

方法调用结束后可以返回一个数据,称之为返回值。

方法在声明时必须指定返回值的类型。

通过 return 语句返回,return 语句的作用在于结束方法且将数据返回。

如果方法没有返回值(即方法不需要返回数据),需将返回值类型声明为 void。

参数列表详解

方法的参数列表:在调用时传递给方法,需要被方法处理的数据。

在方法定义时,需要声明该方法所需要的参数变量。

在方法调用时,会将实际参数值传递给方法的参数变量。必须保证传递参数的类型和个数符合方法的声明。

方法示例

public void say(int a,int b){

​ System.out.println(“方法 say 正在执行”);

}

package day02_test1;

public class Demo2 {

	public static void main(String[] args) {
		say();
		int num = sum(10, 20);
		System.out.println(num);
	}
	
	public static void say() {
		System.out.println("Hello World");
	}
	
	public static int sum(int x, int y) {
		int s = x + y;
		return s;
	}

}

11、算数运算符

在这里插入图片描述

++: 如果是变量前缀:先对此变量加 1,再执行其他的操作。

如果是变量后缀:先执行当前语句的其他操作,再对此变量加 1

–: 如果是变量前缀:先对此变量减 1,再执行其他的操作。

如果是变量后缀:先执行当前语句的其他操作,再对此变量减 1

12、赋值运算符

赋值运算符作用是将一个值赋给一个变量,运算顺序从右到左

在这里插入图片描述

13、关系运算符

关系运算符作用是比较两边的操作数,结果总是 boolean 型的。

在这里插入图片描述

14、逻辑运算符

逻辑运算符用于对 boolean

型结果的表达式进行运算,运算结果总是 boolean 型,后面结合条件结构讲解。

在这里插入图片描述

15、字符串连接符

String s=“He” + “llo”; 结果"Hello"

"+"除了可用于字符串相连接,也能将字符串与其它的数据类型相连成一个新的字符串。

如:String s=“x” + 123; 结果"x123"

16、三目运算符

X ? Y : Z

X 为 boolean 类型表达式,先计算 x 的值,若为 true,整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。

例:

int score = 75;

String type = score >=60 ? “及格” : “不及格”;

17、操作符优先级

运算符的优先次序(一般用不到,除非特殊没有规范的代码)

表达式的运算按照运算符的优先顺序从高到低进行,同级运算符从左到右进行:

优先次序运算符
1. [] ()
2++ – ! ~ instanceof
3new (type)
4* / %
5+ -
6>> >>> <<
7> < >= <=
8= = !=
9&
10^
11|
12&&
13||
14?:
15= += -= *= /= %= ^=
16&= |= <<= >>= >>>=

17、变量作用域

作用域是程序的一个区域,一般来说有三个地方可以定义变量:

  • 在函数或一个代码块内部声明的变量,称为局部变量。
  • 在函数参数的定义中声明的变量,称为形式参数。
  • 在所有函数外部声明的变量,称为全局变量。

当变量间出现重名的情况下,作用域小的屏蔽作用域大的,但该变量的作用只在其作用域内。

18、编程规范

Java 对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。规则如下:

  • 由字母、数字、下划线(_)和美元符号($)组成。

  • 不能以数字开头。

  • 区分大小。

  • 长度无限制。

  • 不能是 Java 中的保留关键字。

命名规范: 软性建议

类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。

方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。

变量名规范:全部小写。

可以按照一定的Java开发手册进行统一规定。

19、转义字符

所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些不能

显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了

- 百度百科

转义字符意义ASCII码值(十进制)
\n换行,将当前位置移到下一行开头010
\r回车 ,将当前位置移到本行开头013
\t水平制表(HT) (跳到下一个TAB位置)009
\\代表一个反斜线字符’’\’092
\’代表一个单引号(撇号)字符039
\"代表一个双引号字符034

20、代码练习

1、回文数判断

package day2;

public class homework1 {

	public static void main(String[] args) {
		int num = 12121;

		if(judgePalindromeNum(num)) {
			System.out.println(num+"是回文数");
		} else {
			System.out.println(num+"不是回文数");
		}
	}
	
	/**
	 * 定义一个整型变量并赋任意五位正整数作为初始值,判断它是不是五位
回文数(五位回文数:个位与万位相同,十位与千位相同,例如:12321
	 */
	public static boolean judgePalindromeNum(int num) {
		String str1 = num + "";
 
		StringBuilder str2 = new StringBuilder(str1);
		str2.reverse();
		int count = 0;
 
		for (int i = 0; i < str1.length(); i++) {
			if (str1.charAt(i) != str2.charAt(i)) {
				break;
			} else {
				count++;
			}
		}
		if (count == str1.length()) {
			return true;
		}
		return false;
	}
}

2、计算变量各位数之和

package day2;

public class homework2 {

	public static void main(String[] args) {
		int num = 12345;
		
		System.out.println(addUpTheNum(num));
	}

	/**
	 * 定义一个整型变量并赋任意五位正整数作为初始值,输出各位数字之和
(例如:12345 各位之和是:1+2+3+4+5 。也就是 15)
	 */
	public static int addUpTheNum(int num) {
		int sum = 0;
		int temp  = num;
		
		while (temp != 0) {
	        sum += temp % 10;
	        temp /= 10;
	    }
		
		return sum;
	}
}

3、变量交换

package day2;

public class homework3 {

	/**
	 * 定义整型变量 a、b,写出将 a、b 两个变量值进行互换的程序
(要求不能使用第三个变量)
	 */
	public static void main(String[] args) {

		int a = 3;
		int b = 4;
		
		System.out.println("交换前:"+a);
		System.out.println(b);
		a = a + b;
		b = a - b;
		a = a - b;
		System.out.println("交换后:"+a);
		System.out.println(b);
	}
}

4、编码规范

package day2;

public class Homework4 {

	/**
	 * 程序入口函数
	 */
	public static void main(String[] args) {
		printHelloWorld();
		printHelloWorld();
	}
	
	/**
	 * 遵守编码规范的打印 Hello World 代码
(注意,注释必须有,也要遵守规范)
	 */
	public static void printHelloWorld() {
		System.out.println("Hello World");
	}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昵称系统有问题

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值