天天看点

java基础知识总结_java基础知识总结

java基础知识总结

一、java概述与计算机基础

1)计算机基础

1)dos命令

2)进制转换

2)java语言发展历史

3)环境变量

4)JDK与JRE

5)Java的三种技术架构

6)javac编译\java运行

二、java语法基础

1)标识符

含义:标识符是程序员为自己定义的类、方法、变量等取的名称

规范(包名、类名和接口名、方法名、变量名、常量名)

2)关键字

概述:关键字只能系统使用,不能作为程序的标识符

访问修饰符关键字

public、protected、private

类、方法和变量修饰符关键字

class\interface、implements、extends、abstract、static

流程控制关键字

if-else

switch-case-default

for

do-while

break、continue、return

instanceof 判断对象是否是类或接口的实例

异常处理关键字

try-catch-finally

throw、throws

assert 用于断言操作

包控制关键字

import 用于将包或者类导入到程序中

package 用于定义包

数据类型关键字

boolean、char、byte、short、int、long、float、double

float f1 = 123.23456f;//浮点会保留两位小数

double d1 = 123.23456; 是双精度数字

特殊类型和方法关键字

super 引用父类

this 作用于当前类对象

void 定义一般的方法

保留的关键字

go、const

3) 注释

单行注释

多行注释

文档注释

4)数据类型(基本、引用)

基本数据类型(四类八中)

数值型 位数

字节型 byte 8

短整型 short 16

整型 int 32

长整型 long 64

字符型

char 基本字符

Unicode码表示字符 格式:\uxxxx

unicode码中定义了至今人类语言的所有字符集,Unicode编码字符用16进制数值表示,既有 2^16 个可能值,也就是0-65535

转义字符

\' 但引号 \"双引号 \\ 斜杠 \r 回车

\n 换行 \f 换页 \t 跳格\b 退格

浮点型 float、double

float 单精度浮点数 float f1 = 123.123f;

double 双精度浮点数

布尔型 boolean

true、false

进制数值

八进制 定义:int a8 = 012; //定义一个八进制数值,以0开头 范围0-7

十六进制 定义: int a16 = 0xcafe;//定义十六进制数值,以0x开头 范围0-9,

A(10)、B(11)、C(12)、D(13)、E(14)、F(15),不区分大小写

数据类型间的转换

自动转换

转换前的数据类型的位数,要低于转换后的数据类型。 位数低的类型可以自动转换成位数高的类型。

short - int - long - double

16位数的short可以自动转换成 32位数的int. 32位数的float 可以自动转换成double

long 可以转换成 double 类型,但是一定要在后面加上小数位

强制转换

从高位到低位 字符类型是可以自动转换为数值类型的,相反数值类型也可以强制转换为字符类型的。

隐含转换

byte b = 123;// 123 是数值默认为int类型,隐含强制转换成byte类型

5)常量

定义:使用final关键字

6)变量

变量的作用域和生存期

变量的数据类型

自动类型转换、强制类型转换

7)运算符

算术运算符

+ 加法运算符

- 减法运算符

+ 、- 也可以作为正数和负数的前缀。 同时 + 可以用于字符串连接操作。

* 乘法运算符

/ 除法运算符

% 求余运算符

求余 和 除法 运算符 第二位不能为0,否则程序异常 java.lang.ArithmeticException

自增自减运算符

++ 自增

-- 自减

前缀方式:先进行自增或自减运算,再进行表达式运算

后缀方式,先进行表达式运算,后进行自增自减运算。

注意:使用自增自减运算符的时候,并不会进行类型的提升,操作前数值是什么类型,操作后的数值就是什么类型。

关系运算符

== 等于

!= 不等于

>= 大于等于

<= 小于等于

> 大于

< 小于

批注:关系运算符比较的是基本数据类型时,表示比较的值是否相等;

用 == 或 != 比较的是对象或者引用数据类型是,表示比较的对象的引用是否相等。

逻辑运算符

& 与 两边都为true,则为true, 否则为false

&& 短路与 两边都为true,则为true. 如果第一个为flase,则为false,不继续比较

| 或 两边都为false,则为false,否则为true

|| 短路或 两边都为false,则为false,如果第一个为true,则为true,不继续比较

! 非运算符

批注:比较的是二进制数的逻辑关系,运算结果为true\false;

&& 符号两边都为true , 结果为true; 有一边为false,结果为false

|| 符号两边都为false ,结果为false;有一边为true,结果为true

三元运算符

表达式1:表达式2 ? 表达式3

批注:对三个表达式集中比较,表达式1为true,取第二个表达式,否则取第三个表达式

位运算符

概述:在计算机中,所有的整数都是通过二进制进行保存的,由一串0或者1组成。每个数字占一个比特位。

位运算符就是对数据的比特位进行操作,只能由于整数类型。

& 与 : 如果对应位都是1,则结果为1,否则为0. 如: x & y

| 或 :如果对应位都是0,则结果为0,否则为1. 如: x | y

^ 异或:如果对应值相同,则结果为0 ,否则为1. 如: x^y

~ 非:把操作数的每一位都去反

批注:将操作数转换为二进制,然后按位比较

位移运算符

<< 带符号右移 ,需保证正负不变。 如 7>>1 = 3 ,右移相当于 除以2,如果是奇数则是-1后除以2

<< 带符号左移 ,不足用0补齐。 6<<1 = 12 左移相当于 乘以2

>>> 无符号右移 ,移动后首位是0,正数,即可以把负数移位后转成正数

例如:-8 >>>1 = 2147483644

批注:和逻辑运算符一样,对表达式进行比较。

先将比较的操作数转出成二进制数,然后向右向左移动相应的位数。

赋值运算符

= 一般赋值运算符 如: int n = 3; //把数值3赋值给整型的变量n

+=、-=、*= 运算赋值运算符 先运算,再赋值

运算符的优先级

三、流程控制语句

1)复合语句

2)条件语句

if-else

switch-case-default

break 不能省略,否则无法跳出循环

3)循环语句

while

do-while

for

for(初始化;条件;迭代运算){ 循环体 }

for(int i=0;true;i++) //循环条件一直为true

for(;true;) //没有起始条件

for(;;) //没有任何条件的死循环

4)跳转语句

break 跳出

用法1:跳出循环;当循环嵌套时,跳出当前的循环;

用法2:跳出语句块。 用于循环嵌套时跳出外循环。

continue 继续

用法:虽然break可以跳出循环,但是有时候要停止一次循环剩余的部分,同时还要继续执行下次循环,这时候就需要continue

return 返回

实战经典:

1)99乘法表

2)螺旋矩阵

四、字符串

五、数组

1)创建

int [] array1 = new int[5]; //注意:数组的小标是从0开始, 最后一个索引是数组的长度-1

int a = array1[1]; //通过小标获取元素

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

在创建数组的时候 数组元素会获得一个默认值。

赋值: array1[0] = 1;

2)初始化

int [] arr = {1,2,3,4,5};//创建的时候初始化

3)length 实例变量

java中的数组是一个对象,它会有自己的实例变量。 数组只有一个公共实例变量:length 指数组的长度

4)main方法接受 用户输入的参数

5)数组拷贝

array1=array2; array2[0]=10; //我们会发现,两个数组的值都改变了。 显然,这样的拷贝方法不合适

System.arraycopy(fromArray,fromIndex,toArray,toIndex,llength); //目标数组必须有足够多的空间,否则会抛出异常。

实战:

创建两个数组把数组1的全部元素拷贝到数组2的尾部

6)数组排序

选择排序 --- 典型的交换排序算法

概念:对一个长度n的数组进行n次办理,第一次遍历选出最大或者最小的元素,将之与数组的第一个元素交换;

第二次遍历,再从剩余的元素中选出最大(或者最小)的元素,将之与数组的第二个元素交互。

这样遍历n次后,得到的就为降序或者升序 的数组。

批注:选择排序的效率比较低,但原理简单,实现起来比较容易

冒泡排序

快速排序

六、类和对象

七、包装类

基本数据类型包装类:Integer、Boolean、Byte、Character、Double、Number

八、数字处理类

0) 数字格式化

1)数学运算

Math

常用数学运算方法

2)随机数

Math.random()

Random类

3)大数字运算

BigInteger

BigDecimal

九、接口、继承、多态

十、类的高级特性 内部类

十一、异常处理 异常、断言、日志、调试

十二、集合类

十三、IO流

十四、反射、枚举、泛型

十五、多线程

十六、网络通信

十七、数据库操作

十八、JDK 7的改进

附录:

java基础知识总结_java基础知识总结
java基础知识总结_java基础知识总结
java基础知识总结_java基础知识总结
java基础知识总结_java基础知识总结
java基础知识总结_java基础知识总结

继续阅读