Java学习笔记01(持续更新)

本博客用于记录本人Java的学习过程,本人才疏学浅,如有错误,请在评论区指出

本专栏其他文章:
JDK安装配置
eclipse安装与使用
Java学习笔记02
Java学习笔记03
Java学习笔记04
JDBC技术

1.1 Java关键字与保留字

不论是关键字还是保留字,在自己命名标识符时都应该避免使用。

1.1.1 关键字

用于定义数据类型的关键字:

class	interface	enum	byte	short	void
int		long		float	double	char	boolean				

用于定义数据类型值的关键字:

true	false	null	

用于定义流程控制的关键字:

if		else	swtich		case		default		while
do		for		break		continue	return

1.1.2 保留字

保留字:现有Java版本尚未使用,但以后版本可能使用的字符。

byValue	cast	future	generic		inner	operator
rest	var		goto	const		outer	outer

1.2 标识符

凡是自己可以取名字的地方都可以叫做标识符。

1.2.1 命名规则

  • 标识符只能由字母、数字、下划线和字符$构成。
  • 数字不能作为标识符开头。
  • 不能使用Java的关键字和保留字,但是可以包含。
  • 严格区分大小写。
  • 标识符不能包含空格。

注意:起名字时应该简短又具有描述性,以便于阅读代码。

1.2.2 命名规范

  • 包名:多单词组成时所有字母都小写
  • 类名、接口名:多单词组成时,所有单词首字母大写
  • 变量名、方法名:多单词组成时,第一个单子首字母小写,从第二个单词开始首字母大写
  • 常量名:所有字母都大写,多单词之间用_连接

1.3 变量

1.3.1 概念和定义

概念:

  1. 变量是内存中的一个存储区域
  2. 该区域有自己的名称和数据类型
  3. 该区域的数据可以再同一类型范围内不断变化

使用规则:

  1. 变量必须先声明后使用
  2. 在一对{}内有效

定义格式:
数据类型 变量名 = 初始值

int i = 1;

1.4 数据类型

数据类型有两种,分别是基本数据类型和引用数据类型。

1.4.1 基本数据类型

基本数据类型有8种,其中又分为3种类型,数值型(包含整数类型和浮点型),字符型,布尔型
1.数值型
先来看整数类型,顾名思义就是都是整数,共有 byte、short、int、long 四种数据类型

类型储存空间表示范围
byte1字节(8bit)-128 ~ 127
short2字节-215 ~ 215-1
int4字节-231 ~ 231-1
long8字节-263 ~ 263-1

(1bit就是1位)

默认的整型常量是 int ,声明long型常量时后面要加“L”或“l”。
例如:

long a = 2l;

再来看看浮点型,浮点型是小数,有float、double两种

类型储存空间表示范围精度
float4字节-2128 ~ 21287位有效数字
double8字节-21024 ~ 2102416位有效数字

默认的浮点型常量是 double,声明float类型常量时后面要加“F”或“f”。
例如:

float f = 2.3f;

2.字符型
char类型用来表示通常意义上的字符(2字节),包括字母、数字和特殊符号,用单引号(’’)括起来。char类型还可以进行运算。
例如:

char c = 'a';

Java种还用转义字符 ’ \ ’ 来将其后的字符转化为特殊字符。
例如:

char c1 = '\n';

下面列举常见的转义字符:

转义字符含义
\b退格符
\n换行符
\r回车符
\t制表符
\ "双引号
\ ’单引号
\ \反斜线

3.布尔类型
boolean数据类型只允许 true 和 false 两种取值。而且不能用0和非0数值代替。

1.4.2 引用数据类型(String)

我们这里只看字符串类型 String 类型。字符串就是由多个字符组成的一个串,要用双引号("")括起来。String类型可以用 null 赋值。
创建出来的字符串放在存储区,保证每个字符串的常量只有一个,不会产生多个副本。例如:

String s0 = "abc";
String s1 = "abc";

这两个字符串的内容相同,它们实际上储存在同一处内存空间。

String类的内容可以用 + 号连接,例如:

String s3 = "He" + "ll" + "o";

在Java中,提供了一个求一个字符串的长度的方法:
字符串名.length()。
例如:

String[] s1 = "123456789";
int len = s1.length();	//长度为9

Java还提供获取字符串中指定索引号位置字符的方法:字符串名.charAt(index),
其中index为索引号
例如:

String a = "123456789";
char c1 = a.charAt(0); // c1 = 1

比较字符串的内容是否相等使用 equals() 方法来判断,不能简单的使用“ == ”来判断。
注意其返回值为 boolean 类型。下面举例说明如何使用。

String s1 = "Hello";
String s2 = "Hello";
String s3 = "hello";
boolean a = s1.equals(s2); //返回值为true
boolean b = s2.equals(s3); //返回值为false

1.4.3 数据类型的转换

1.自动转换
占用内存小的转化为占用内存大的可以自动转化,比如:

short s = 2;
int i = s;		//自动转化

float f = 1.2L	
double d = f;	//自动转化

在不同的数据类型进行运算时,自动转化为容量大的类型后再进行运算(byte、short、char不能相互转化,计算时转化为int)。
例如:

byte b = 1;
short s = 2;
int i = b + s;	//b 和 s 自动转化为 int 类型

float f = 1.2l;
double d = 1.2;
double sum = f + d;	//f 和 d 自动转化为 double 类型

char 类型参与运算时,自动转化为整型(因为ASCLL码)。例如:

char ch = 'a';
int a = 2;
System.out.println(a+ch);
--------------------------------------------------------------------
输出结果为
99

在String类参与的运算中,都默认转化为String类型,例如:

int a = 1;
int b = 2;
String s = "hello";
System.out.println(a+b+s);
System.out.println(s+a+b);
--------------------------------------------------------------------
输出结果为
3hello
hello12

2.强制类型转换
占用内存大的数据类型转化为占用内存小的时,需要强制类型转化,例如:

int k = 1;
byte b0 = (byte)k;	//需要用小括号括起来

注意:boolean类型不能转化为其他类型。

1.5 运算符

1.5.1 算术运算符

Java中的算术运算符主要有+(加号)、-(减号)、*(乘号)、/(除号)和%(求余),它们都是二元运算符。

运算符运算
+正号
-负号
+
-
*
/
%取余
++自增
自减
+字符串连接

注意:
1.特别需要注意除号(/),整形的变量相除得到的变量还是整型,会自动去除小数部分。
2.自增、自减运算符都是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。放在操作元前面的自增、自减运算符,会先将变量的值加1(减1),然后再使该变量参与表达式的运算;放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算,然后再将该变量加1(减1) 。
3.取余运算(%),取模运算符的右侧的负号(-)可以忽略,但是在左侧时不可忽略。

1.5.2 赋值运算符

赋值运算符即“=”,是一个二元运算符(即对两个操作数进行处理),其功能是将右方操作数所含的值赋值给左方的操作数。
注意:

  1. 当两端的变量类型不一致时,可以进行类型转换(上边详细说明了)。
  2. 在Java中还支持连续赋值。

还有几种拓展的运算符 " += " 、"-=" 、"/=" 、" *= " 、" %= “。
这里以” +=" 为例说一下:

int a = 3;

a = a + 1;
a += 1;
//这两种运算时等价的, a += 1 就相当于 a + 1

1.5.3 比较运算符

比较运算符属于二元运算符,用于程序中的变量和变量之间、变量和常量之间以及其他类型的信息之间的比较。比较运算符的运算结果是boolean型,当运算符对应的关系成立时,运算结果是true,否则结果是false。

运算符运算
==相等于
!=不等于
>大于
<小于
>=大于等于
<=小于等于

1.5.4 逻辑运算符

逻辑运算符返回值为布尔类型的表达式,操作元也必须是boolean型数据。
包括包括&&(短路与) 、&(逻辑与)、||(短路或)、|(逻辑或)、!(逻辑非)和^(逻辑异或)。
在逻辑运算符中,除了“!”是一元运算符之外,其余的都是二元运算符。

在这里插入图片描述
& 和 && 的区别:

  • &:左边无论真假,右边都进行运算
  • &&:左边为真,右边进行运算;左边为假,右边不进行运算

| 和 || 同理。

1.5.5 位运算符

位运算是直接对二进制进行运算。

运算符运算实例
<<左移3<<2=12(左移两位);m << n 相当于 m * 2 n
>>右移3>>1= 1(右移一位);m >> n 相当于 m * 2 -2
>>>无符号右移3>>>1=1即3/2=1
&与运算6&3=2
l或运算6l3=7
^或与运算6^3=5
~反码~6=-7

1.5.6 三元运算符

三元运算符是Java中唯一一个三目运算符,其操作元有三个,第一个是条件表达式,其余的是两个值,条件表达式成立时运算取第一个值,不成立时取第二个值,例如:

boolean b = 20 < 45 ? true : false;

1.5.7 运算符优先级

运算符有不同的优先级,优先级就是表达式中的运算顺序,如下表所示:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值