Java语言基础

本文深入讲解Java编程的基础知识,涵盖变量声明与作用域、数据类型、类型转换、转义字符、布尔类型特性、算术运算符、逻辑运算符、字符串处理、位运算、流程控制语句、静态方法与变量、包的使用、递归原理等内容。

1.书写格式

1.1Java区分大小写

1.1类名以大写字母开头 Test

1.2方法和变量以小写字母开头,遵循驼峰原则。eat eatFood

1.3必须以字母(包括中文),下划线,美元符$开头。

1.4后面由字母(包括中文),下划线,$,数字组成。不能为关键字

1.5标识符不能是,true,false,null,但他们不是关键字。

2.Java是强类型语言,每个变量都必须声明类型。

3.变量声明是语句,都必须以”;“结尾。

4.变量作用域

4.1实例对象生命—随—对象

4.2静态变量生命—随—类

4.3局部变量生命从声明——“}”结束,使用前必须初始化,在方法体内定义的变量都是局部变量

4.3常量生命—随—程序,初始化化后,值不可变

5Java定义了3类8种基本数据类型

5.1 3类

逻辑型 boolean

文本型 char

数值型 byte,short,int,long,float,double

5.2 8种数据类型

 

 

6.引用数据类型大小统一为4个字节,引用对象地址

7.Java没有无符号类型

8.Java整型的范围与代码机器无关(c/c++需要针对不同处理器选择最有效的整数)

 

类型

占用存储空间

表数范围

Byte

1字节

-128~127

Short

2字节

-2^15 ~ 2^15-1 (-32768~32767)

Int

4字节

-2^31 ~ 2^31-1 

(-2147483648~2147483647) 约21亿

Long

8字节

-2^63 ~ 2^63-1

float

4字节

-3.403E38~3.403E38精度7位

double

8字节

-1.798E308~1.798E308精度24位

 

9.变量系统默认值

逻辑型 boolean false

文本型 char null

数值型 byte,short,int,long,float,double 0

10.类型自动转换规律(boolean型变量不能转换)

10.0byte型不能自动类型提升到char,char和short直接也不会发生自动类型提升

10.1容量小数据—自动转换—容量大数据

 

10.2 不超过byte,char,short范围的int—自动转换—(byte,char,short)

10.3数值型类型数据默认为 int型 超过int范围的long型数据后要加L/l(不要用小写)

10.4浮点类型数据默认为double型 float型数据必须加F/f7

10.6char 类型用来表示在Unicode编码表中的字符, Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个字符

11.类型强行转换规律

11.1容量大数据—强转—容量小数据 double a=3.14;int b=(int)a;

11.2赋值语句右边运算时参与变量类型相同,结果相同 int a/int b=int

11.3运算结果为整型数据,自动转int,结果赋值可能要强转

11.4 满足10.2条件时,但变量(需要运行期间才确定的)—强转—变量 int a=3;byte c=(byte)a;

11.5 运算时,数据会自动提升到容量较大者,结果赋值可能要强转

11.6 运算结果也遵循11.4条件

12.单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示含有一个字符的字符串。

13.转义字符

 

转义符

含义

Unicode值

\b

退格(backspace)

\u0008

\n

换行

\u000a

\r

回(enter)

\u000d

\t

制表符(tab)

\u0009

\“

双引号

\u0022

\‘

单引号

\u0027

\\

反斜杠

\u005c

14.Java中boolean型变量 true/false与c语言不同,不可以为0或非0的整数

15.i++ 右++先运算,后自增。 ++i 左++先自增,后运算。

16.&与&&区别

16.1&(可以做位运算符)是逻辑与 &&是简洁与或短路与,两边为true时,结果为true

16.2但&&左边为false时,不计算右边结果,直接输出false boolean c = 1>2&&2>(3/0);(不能用&)

16.|与||区别

16.1 | 是逻辑或 || 是 简洁或/短路或,两边为false时,结果为false

16.2但||左边为true时,不计算右边结果,直接输出true boolean c = 3>2&&2>(3/0);(不能用&)

17.+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会将另一个操作数转换成字符串再连接。

17.0(扩展知识)String类的并置问题https://blog.youkuaiyun.com/q418030645/article/details/79266362

17.1 符合17,另一个为整型变量时,直接输出整型值

17.2 符合17,另一个为非字符串引用时,输出引用地址

18. 变量<<左移 i为=变量*2^i; 变量>>右移i位=变量/2^i。

19. switch语句会根据表达式的值从匹配的case标签中开始执行,一直执行到break语句或者switch语句的末位(末位包括defalut语句)。与任意语句不匹配则进入default语句。

20静态方法使用公共空间,所有对象都可以引用。

21.(扩展知识)JAVA中只有值传递https://blog.youkuaiyun.com/bjweimengshu/article/details/79799485

22.递归

22.1递归头:什么时候不再递归调用自身方法。

22.2递归体:什么时候需要递归调用自身方法。

22.3(扩展知识)递归函数运行时,系统最大同时有的线程数为,函数调用次数。

23.在void函数中,可以用return;语句返回空,跳出该函数。

24.package包的使用方法

作用

24.1解决类名重复问题

24.2为了便于管理类:合适的类位于合适的包

用法

24.3通常是类的第一句非注释性语句

24.4包名:域名倒着写即可,再加上模块名,并与内部管理类

注意

24.4写项目时都要加包,不要使用默认包

24.5com.gao和com.gao.car,这两个包没有包含关系,是两个完全独立的包,只是逻辑上看起来后者是前者

的一部分。

25.6包名不区分大小写,创类时要注意不能重名。

25.import在一个类中使用了其他包中的类,需要使用 import 来引入

25.1如import java.awt.*,只引用 java.awt 下的类,而不引用 java.awt 下的子包里面的类。

25.2. import 只告诉编译器及解释器哪里可以找到类、变量、方法的定义,而并没有将这些定义 引入代码中。

25.3使用的类是属于 java.lang 包的,那么可以直接使用类名来引用指定的类

25.4使用的类在其它包(java.lang 除外)中,那么可以通过包名加上类名来引用该类, 如java.awt.Font。对于经常要使用的类(该类在其它包中),那么最好使用 import 引用指定的包,如java.awt.*

25.5如果import引入的不同的包中包含有相同的类名,那么这些类的使用必须加上包名。

25.6引用一个包中的多个类,如 import java.awt.*。 *号代替类名,但不能代替包名

 

26.静态变量

26.1

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值