Java语言基础(Java自我进阶笔记二)

Java语言基础(Java自我进阶笔记二)

一、 什么是Java 的主类结构?

1.

基本组成单元
Java程序
属性
方法
局部变量
全局变量
main方法
其他方法

每一个应用程序都必须包含一个main()方法,还有main()方法的类称之为主类

2 案例

package a;              //包声明
import java.io.*;//导入库
public class First {
	static String s1="你好";//成员变量
	public static void main(String[] args)//主类方法
	{
		String s2="java";//局部变量
		System.out.println(s1);
		System.out.println(s2);
	}

}

其中a 是类First所在的包,s1是成员变量,s2是局部变量,main()是主类方法

3 结构说明

3.1 包声明

3.2 导入API类库

3.3 声明成员变量和全局变量

通常将类的属性称为类的全局变量(在类体中声明),将方法中的属性称之为局部变量(在方法中声明)

3.4 编写主方法

main()方法是类体中的主方法。由{}确定边界。public、static和void分别是main()方法的权限修饰符、静态修饰符、返回值修饰符。main()方法必须这样声明。String [] args是一个字符串类型的数组,是main()方法的参数。main()方法是程序开始执行的地方。(main()方法的大致格式是一定的)

二、 基本数据类型

1. 结构

基本数据类型
数值型
字符型
布尔型
整数类型
浮点类型
byte
short
int
long
float
double

2 数值型

2.1 整数类型

整型数据有三种表示方式,分别是十进制、八进制和十六进制

十进制 比如 120、0、-127在我们生活中使用最多的便是10进制

八进制 比如 0123(转化为十进制是83)、-0123(转化为十进制是-83)

十六进制 比如0x25(转化为十进制是37)注意:十六进制必须以0X或0x开头

数据类型内存空间(8位等于1字节)取值范围
byte8位-128~127
short16位-2^15 ~2^15-1
int32位-2^31~ 2^31-1
long64位-2^63~ 2^63-1

定义上述4种类型变量时,要注意变量的取值范围,超出范围就会报错。对于long型值,若范围超过int型的范围,需要在数字后加L或l,表示该数值为长整数,如
long num=21344333445343434L

2.2 浮点类型

浮点类型分为单精度浮点类型(float)和双精度浮点类型(double),分别具有不同的取值范围.
在默认情况下,小数一般被默认为double型,若使用float型小数,需要在小数后面加F或f

数据类型内存空间(8位等于1字节)取值范围
float32位1.4E-324~3.4028235E38
double64位4.9E-324~1.7976931348623157E308

根据表格可以看出,相比而言,double类型的范围更大一些。

3 字符类型

3.1 char类型

字符类型(char)用于储存单个字符,占用16位也就是2个字节的内存空间。

char x='a';

由于a在unicode表中是97,所以上面的语句也可以写成

char x=97

3.2 转义字符

转义字符含义
\ddd八进制数据所表示的字符
\uxxxx4位十六进制数所表示的字符
\’单引号字符
\\反斜杠字符
\r回车
\n换行
\b退格
\f换页

4 布尔类型

布尔类型又称之为逻辑类型,用关键词boolean来定义布尔类型变量,只有true和false两个值。布尔类型不能和整数类型转换。(和C有不同)。

三 变量与常量

值可以改变的量称为常量,不能被改变的量称为变量。变量和常量的命名需要合法的标识符。

1 标识符

标识符用于标识类名、变量名、方法名、数组名、文件名。它是一个有效字符序列。

标识符由任意顺序的字母、下划线(_)、美元符号($)和数字构成并且首个字符不能是数字。标识符不能是关键字。
比如 :
name
use_age
$page
非法标识符:
4word(数字开头)
String(关键字)
User name(含有空格)

2 关键字

Java语言中被赋予特殊含义的字符串被称为关键字。

intpublicthisfinallybooleanabstract
intpublicthisfinallybooleanabstract
continuefloatlongshortthrowthrows
returnbreakforstaticnewinterface
ifgotodefaultbytedocase
strictfppackagesupervoidtryswitch
elsecatchimplementsprivatefinalclass
extendsvolatilewhilesynchronizedinstanceofchar
protectedimporttransientdefaultdouble

3 变量声明

变量命名规则
变量名必须是一个有效的标识符
变量名不可以使用Java语言中的关键字
变量名不能重复
应该选择有意义的单词作为变量名
Java语言中允许汉字或者其他语言作为变量名,但是还是尽量避免使用。

int 年龄=21

这并不会报错

4 常量声明

在程序运行过程中一直不会改变的量称为常量,通常也被称为“final变量”
在定义时必须赋予初值,否则会报错。

定义的标准语法如下

final 数据类型 常量名称[=]

比如注意变量名由于编写规范通常字母大写

final double PI=3.1415926D;

5变量的有效范围

变量有着自己的生命周期,变量的有效范围是指程序代码能够访问该变量的区域。在程序中根据变量的有效范围将变量分为成员变量和局部变量。

5.1 成员变量

在类体中被定义的变量称为成员变量,成员变量在整个类中都有效。类的成员变量又可分为静态变量和实例变量

声明静态变量和实例变量

class var
{
   int x=45;
   static int y=-90; 

}

x为实例变量,y为静态变量,根据标识符static区分。
静态变量的有效范围可以跨类,甚至可达整个应用程序之内。静态变量除了在定义它的类中存取,还可以通过类名.静态变量的方式在其他类中使用。

5.2 局部变量

在类的方法体中定义的变量称为局部变量,只在定义的方法中有效。当成员变量和局部变量的名字相同时,在局部变量的有效区域内,成员变量暂时失效。

public class Val{
   static int times=3;
   public static void main(String args[])
   {
   int times=4;
   System.out.println("times 的值为:"+times);
   }

}

在这里插入图片描述

四 运算符

(1)运算符的类型

1赋值运算符

 赋值运算符以符号“=”表示,是一个二元运算符将右边的值赋给左边

2算术运算符

+-*/%,分别代表加减乘除取余

3自增和自减运算符
自增自减运算符是单目运算符,作用都是使变量的值加一或减一
但是和变量的相对位置不同,过程也不同

a的初始值运算a的最终值b的最终值说明
4b=a++54先把a的值赋给b,再将a的值加一,此时a为5,b为4
4b=++a55先将a的值加一,再把a的值赋给b,此时a为5,b为5
4b=a- -34先将a的值赋给b,再把a的值减一,此时a为3,b为4
4b=- -a33先将a的值减1,再把a的值赋给b,此时a为3,b为3
 对于自增和自减运算符而言,运算符在前,则先进行运算符的含义
 (也就是加一或减一)在进行赋值。运算符在后,则变量名称在前,
 先进行赋值,再进行加一或减一

4 比较运算符

>,<,=不作说明,懂的都懂。
==表示判断左右两边是否相等
>=表示判断左边是否大于等于右边
<=表示判断左边是否小于等于右边
!=表示判断是否左边不等于右边

最后比较的结果为true或者false

5 逻辑运算符
运算符 含义 结合方向

&&,& 逻辑与 从左到右
|| 逻辑或 从左到右
! 逻辑非 从右到左

6 位运算符
按位与(&)

对应位进行逻辑与操作

按位或(|)

对应位进行逻辑或操作

按位取反(~)

每一位进行取反操作

按位异或(^)

对应位进行异或操作

移位操作(>>,<<,>>>)

>>表示左移,<<表示右移,>>>表示无符号位右移

"<<"表示左移,即按照右边操作数指定的位数向左移动,右边移空的位置填0;
“>>”表示右移,如果最高位(也就是符号位是0),右移空的位置 补0;如果最高位是1(也就是符号位是1),右移空的位置填1;
“>>>”表示无符号位右移,无论最高位是0还是1,左边移空的位置都填0;

7 三元运算符

条件式?值1:值2

如果条件式运算为真,则表达式取1,否则取2

例如

boolean b=20<45?true:false

20<45为假,所以表达式取2,也就是false;
它等价于

boolean a;
if(20<45)
{
   a=true;
}
else
{
   a=false;

}

(2)运算符比较级

通常运算符的优先级由高到底的顺序是
增量和减量运算
算数运算
比较运算
逻辑运算
赋值运算
如果有相同的运算级别,那么按照从左往右的顺序。

优先级描述运算符
1括号()
2正负号±
3一元运算符++,- -,!
4乘除*,/,%
5j加减+ -
6移位运算>>,<<,>>>
7比较大小<,>,>=,<=
8比较是否相等==,!=
9按位与运算&
10按位异或运算^
11按位或运算
12逻辑与运算&&
13逻辑或运算两个竖杠
14三元运算符?:
15赋值运算符=

五 数据类型转换

 类型转换是把一个值从一种类型转换成另一种类型的过程。
 注意如果从低精度转换为高精度,则永远不会溢出,如果从高精度转换为低精度,
 有溢出的风险,有可能会失败。

1 隐式类型转换

 从低级类型向高级类型的转换,系统会自动执行,程序员无需进行操作,这种类型转
 换称之为隐式转换。

比如

int x=50;
float y=x;

float是高精度,Int则是低精度,将x赋值给y时已经将类型转换。

隐式转换规则

操作数1的数据类型操作数2的数据类型转换后的数据类型
byte、short、charintint
byte、short、char、Intlonglong
byte、short、char 、intfloatfloat
byte、short、char 、int、floatdoubledouble

2显式转换规则

 当把高精度转换为低精度时,必须使用显式类型转换运算
 语法如下
 (类型名)要转换的值

比如

int a=(int)45.23;//这时输出a的值是45
long y=(long)456.6F;//这时输出y的值是456
int b=(int)'d';//这时输出b的值是100



执行显式类型转换,可能会导致精度损失。除了boolean类型外的其他基本类型,都能以显式类型的方式转换

注意

 当把一个整数赋给一个byte,short, int ,long 类型时不可以超过这些变量的取值范围,否则必须进行强制类型转换
 如byte=(byte)129;

六 代码注释与编码规范

1注释

1.1 单行注释

  //

1.2 多行注释

/**/

1.3 文档注释

/**  */   会生成相应的文档

2 编码规范

序号内容
1每条语句要单独占一行,一条命令要以分号结束
2在声明变量时,尽量每个变量的声明都单独占一行,这样有助于添加备注
3java代码中,关键字和关键字直接如果有多个空格会视为一个空格
4为了方便以后的维护,不要使用技术性很高、难懂、易混淆判断的语句,因为程序维护不是一个人,尽量使用简单的技术完成程序所需要的功能
5
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值