JAVA基础知识

转义字符

\r 表示接受键盘输入,相当于按下回车。

\n 表示换行。

\t  制表符,相当于Table键

\b 退格键,相当于Back Space

\’  单引号

\’’ 双引号

\\ 表示一个斜跨

整型的形式

1.十进制: 都是以0-9这九个数字组成,不能以0开头。

2.二进制: 由0和1两个数字组成。

3.八进制: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。

4.十六进制:由0-9和A-F组成。为了区分于其他数字的区别,开头都是以ox开始。

八种基本数据类型

    整数:byte(8)  short(16)  int(32)  long(64)

    小数: float(32)  double(64)

    布尔: boolean(1)

    字符: char(16)

   字符串的数据类型是:String 引用数据类型,不属于基本数据类型。

变量的声明

格式1:数据类型 变量名;

格式2: 数据类型 变量名字1 , 变量名字2 ,……变量名字n;

备注:变量名的首字母都一般都是以小写字母开始。

java数据类型的转换

数据类型转换:

   小数据类型-------->大数据类型     自动类型转换

   大数据类型--------->小数据类型    强制类型转换

   强制类型转换的格式:

       小数据类型  变量名 = (小数据类型)大数据类型

       强制类型转换损失精度!

数据类型转换要注意的细节:

   1. 凡是byte、short 、 char数据类型数据在运算的时候都会自动转换成int类型的数据再运算。

   2. 两个不同数据类型的数据在运算的时候,结果取决于大的数据类型。

算术运算符

    前自增:先自增,后使用。        

   后自增: 先使用,后自增。

(++i)前自增:先自增完毕,再运算整个表达式,语句分号前面的都是运算表达式;

(i++)后自增,先运算完整个表达式(分号前面的都是表达式),再进行自增;

运行原理:   因为后自增要使用 到没有+1之前的值,那么jvm会先声明一个变量用于保存没有+1之前的值。

结论:如果运算符在变量的前面,则该变量自增1或者自减1,然后返回的是变量的新值,如果运算符在变量的后面,则变量也会自增或者自减1,但是返回的是变量原来的值。++在前就是先运算,再取值,++在后就是先取值,再运算。

赋值运算符

运算符

运算

范例

结果

=

赋值

a=3,b=2

a=3,b=2

+=

加等于

a=3,b=3;a+=b;

a=5,b=2;

-=

减等于

a=3,b=2,a-=b;

a=1,b=2;

*=

乘等于

a=3,b=2,a*=b;

a=6,b=2

/=

除等于

a=3,b=2,a/=b;

a=1,b=2;

%=

模等于

a=3,b=2,a%=b;

a=1,b=2

比较运算符

运算符

运算

例子

结果

==

相等于

4= =3

false

!=

不等于

4!= 3

true

<

小于

4 < 3

flase

>

大于

 4>3

true

<=

小于等于

4<=3

false

>=

大于等于

4>=3

true

Instanceof

检查是否是类的对象

"hello"instanceof String

true

   ==用于比较两个基本数据类型数据的时候,比较的是两个变量所存储的值是否一致.

   ==用于比较两个引用类型变量数据的时候,比较的是两个引用类型变量所记录的内存地址是否一致。

逻辑运算符

“&”和“&&”的区别:单与时,左边无论真假,右边都进行运算;双与时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

“|”和“||”的区别同理,双或时,左边为真右边不参与运算。

“ ^ ”异或与“|”或的不同之处是:当左右都为true时,结果为false。

& 与       | 或        ^ 异或       ! 非

移位操作符

位运算符

运算符

运算

范例

<<

左移

3 << 2 = 12 --> 3*2*2=12

>>

右移

3 >> 1 = 1  --> 3/2=1

>>>

无符号右移

3 >>> 1 = 1 --> 3/2=1

&

与运算

6 & 3 = 2

|

或运算

6 | 3 = 7

^

异或运算

6 ^ 3 = 5

~

反码

~6 = -7

位运算符的细节

<<

空位补0,被移除的高位丢弃,空缺位补0。

>>

被移位的二进制最高位是0,右移后,空缺位补0;

最高位是1,空缺位补1。

>>>

被移位二进制最高位无论是0或者是1,空缺位都用0补。

&

二进制位进行&运算,只有1&1时结果是1,否则是0;

|

二进制位进行 | 运算,只有0 | 0时结果是0,否则是1;

^

任何相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0

 

不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1

三元运算符

格式

(条件表达式)?表达式1:表达式2;

如果条件为true,运算后的结果是表达式1;如果条件为false,运算后的结果是表达式2;

三元运算符要注意的细节:

   使用三元运算符的时候,一定要使用该表达式返回的结果,或者是定义一个变量接收该表达式返回的结果。

运算符的优先级与结合性

If语句常见的错误

如果代码块中只有一条语句的时候,可以省略花括号,但是当花括号将多条语句扩在一起时,花括号就不能在省略。

switch语句特点

  1. switch语句选择的类型只有四种:byte,short,int , char,String数据类型,String数据类型是从jdk7.0的时候开始支持的。
  2. switch case中的值必须要与switch表达式的值具有相同的数据类型。而且case后跟的值必须是常量,不能跟变量。
  3. case之间与default没有顺序。在switch语句中不管代码的顺序如何,永远都是会先判断所有的case,没有匹配的case执行default。case后面跟的数据必须是一个常量。
  4. switch语句停止的条件:switch语句一旦匹配上了其中的一个case语句,那么就会执行对应的case中的语句代码,执行完毕之后如果没有遇到break关键字或者是结束switch语句的大括号,那么switch语句不会再判断,按照代码的顺序从上往下执行所有的代码。直到遇到break或者是结束switch语句的大括号为止。

函数的格式

修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…)

{

        执行语句;

        return 返回值;

}

修饰符: public static

返回值类型: 运行这段程序得出的一个运算结果,结果类型,如果返回值类型为void ,则表示该函数没有返回值。 如果返回值类型为int,那么就是指函数运行完毕后,返回的结果的数据类型为int。

函数名:仅仅是一个标识符,可以随意起名字,但是需要符合标示符的命名规则。而且调用该函数还需要使用函数名。

函数的命名规范: 首单词全部小写,其他单词的首字母大写,其他小写。

形式参数:是一个变量,用于存储调用函数传递进来的实际参数。

实际参数:传递给形式参数的具体数值。

返回值:返回给调用者。

 注意: 如果一个函数的返回值类型是具体的数据类型,那么该函数就必须要保证在任意情况下都保证有返回值。(除了返回值类型是void以外)

return 关键字的作用:

1. 返回数据给函数的调用者。

2. 函数一旦执行到了return关键字,那么该函数马上结束。 (能结束一个函数)

注意:一个函数的返回值类型 是void,那么也可以出现return关键字,但是return关键字的后面不能有数据。

break关键字与return关键字的区别:

1.break关键字是结束一个循环。

2.return关键字是结束一个函数。

函数的特点

1、定义函数可以将功能代码进行封装

2、便于对该功能进行复用

3、函数只有被调用才会被执行

4、函数的出现提高了代码的复用性

5、对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。

注意:

函数中只能调用函数,不可以在函数内部定义函数,没有定义函数之前,不能调用函数。

定义函数时,函数的结果应该返回给调用者,交由调用者处理。

函数需要实现功能,那么函数只实现所需功能即可,不要实现不需要的功能。

局部变量与成员变量的区别

局部变量: 如果一个变量是在一个方法(函数)的内部声明的,那么该变量就是一个局部变量。

成员变量: 成员变量就是定义在方法之外类内。

成员变量与局部变量的区别:

  1. 应用范围 
    1. 成员变量在整个类内都有效,作用是用于描述一类事物的公共属性的。
    2. 局部变量只在其声明的方法内有效,作用就是提供一个变量给方法内部使用而已。
  2. 生命周期 

              1. 成员变量: 它属于对象,它随着对象的创建而创建,随着对象的消失而消失

              2. 局部变量: 在调用了对应的方法时执行到了创建该变量的语句时存在,局部变量一旦出了自己的作用域,那么马上从内存中消失。

   3. 存储位置 

成员变量属于对象,它存储在堆内,堆内的实体,当没有引用指向其时,才垃圾回收清理。

局部变量存在栈内存中,当不在使用时,马上就会被释放。

   4. 初始值

成员变量,存储在堆中,如果没有赋初值,它有默认值。

局部变量,是没有默认的初始值的,如果要想使用必须要先手动初始化。

函数的重载

  1. 函数重载的定义:在同一个类中,有一个以上的同名函数,只要函数的参数列表或参数类型不一样即可,与返回值无关, 这些统称为方法的重载。
  2. 函数的重载存在的原因:为了增强方法的阅读性,优化了程序设计。
  3. 函数重载的要求:

       1. 函数名一致。

       2. 形参列表不一致。(形式参数的个数或者是对应的数据类型不一致)

       3. 与函数的返回值类型是无关的。

数组

概念

同一种类型数据的集合。其实数组就是一个集合容器。

数组的好处

可以自动给数组中的元素从0开始编号,方便操作这些元素。范围:0~长度-1.

格式1      动态初始化:

数据类型[] 变量名 = new 数据类型[元素个数或数组长度];

示例:int[] arr = new int[5];

格式2      静态初始化:

数据类型[] 变量名 = new 数据类型[]{元素,元素,……};

int[] arr = new int[]{3,5,1,7};

int[] arr = {3,5,1,7};

分析数组:  

左边: int[] arr    声明了一个int类型的的数组变量,变量名为arr。

int : 表示该数组容器只能存储int类型的数据。

        [] : 这是一个数组类型。

        arr : 变量名.

    右边:new int[50]; 创建了一个长度为50的int类型数组对象。

        new : 创建数组对象的关键字。

        int:  表示该数组对象只能存储int类型数据。

        []: 表示是数组类型。

        50 : 该数组最多能存储50个数据。数组的容量。

 如果程序一开始你就已经确定了数据,那么这时候建议使用静态初始化。如果数据一开始还不太明确,这时候就建议使用动态初始化

数组中有一个属性可以获取到数组中元素的个数,也就是数组的长度.             数组名.length

数组的常见异常

数组角标越界异常:java.lang.ArrayIndexOutOfBoundsException

空指针异常:java.lang.NullPointerException

原因: 引用类型变量没有指向任何对象,而访问了对象的属性或者是调用了对象的方法。

二维数组

二维数组:实质就是存储是一维数组。

数组定义:数组类型[][] 数组名 = new 数组类型[一维数组的个数][每一个一维数组中元素的个数];

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值