JavaSE语法笔记

本篇文章是作者自己的学习笔记,每一章没有详细介绍

Java 编程基础知识点整理

目录

Java 编程基础知识点整理 

一、基本概念 

1. 命名规则 

二、数据类型 

2. 浮点型 

三、数据类型转化 

四、运算符 

五、控制台输入 

六、方法 

3. 调用:类名。方法名。 

七、数组 

八、面向对象和面向过程 

九、类和对象 

1. 构造方法名字与类名相同,不需要加 void 修饰。 

十、static 关键字 

十一、包 

1. Java 中一个类的完整名称:包名(地址)+ 类名。 

十二、访问权限修饰符 

十三、面向对象的三大特点 

4. 方法的重写 

5. 抽象类和接口的区别 

十四、常用类(api) 

2. BigDecimalDemo类:解决浮点数精度问题。 

十五、集合框架 

3. Set 接口:不能存储重复元素。 

11. HashMap: 

十六、泛型 

十七、IO(输入,输出)/java.io 

1. 按照读取单位来分: 

2. 按照流的流向分: 

3. 示例: 

1. 字符流(只能读取文本文件,不能读取图片,视频): 

2. 转换流: 

2. 数据流(DataStream)。 

十八、异常 

1. 概述:在计算机语言进行开发过程中,即使代码很完善,但是很多 

1. 常见的异常: 

3. 异常处理通过五个关键字来实现: 

7. 方法: 

十九、网络编程 

1. 三要素:ip 地址,端口号(对应的程序),通信协议。 

2. 网络通信模型: 

7. UDP 协议下的实现类: 

二十、线程 

1. 基本概念: 

2. 线程和进程之间的关系: 

3. 实现多线程的两个方法: 

一、基本概念

  1. 关键字:有特殊含义的单词,在编写代码中不能作为变量名使用。
  2. 保留字:不是关键字,但也不能作为变量名使用,例如 gotoconst 等。
  3. 标识符:在编写程序中,程序员能够命名的内容,为变量、函数、类、包等命名的字符序列称为标识符。
    1. 命名规则
      1. 强制规定:标识符不能使用空格;不可以使用关键字和保留字,但可以包含关键字和保留字;允许使用 26 个英文大小写字母;数字不能开头。
      2. 约定俗成:见名知意,例如 student_age;常量名全部大写,用 _ 连接。
  4. 变量:在 Java 中变量的使用前必须是经过赋值的,没赋值不可以使用。变量是程序中最基础的存储单元,用来存储数据,变量就是在内存中开辟一块空间,通过变量名来访问空间。

二、数据类型

  1. 基本数据类型(8 种)

    1. 整形变量byteshortintlong
      1. byte:1 个字节,8 个二进制位,取值范围 -128~127。
      2. short:2 个字节。
      3. int:4 个字节。
      4. long:8 个字节,在对 long 类型的变量初始化的时候,整形的字面常量默认为 int 类型,要是赋值超过 int 类型会报错,需要在末尾加个 L/l 告诉编译器赋值的是 long 类型,例如 long a = 12249823947239473298L
    2. 浮点型
      1. float:4 个字节,有效位数是 8 位,浮点类型默认字面常量是 double 类型,需要 float 类型时需要在字面常量后面加 f/F,例如 float a = 10.2f
      2. double:8 个字节。
      3. 有的小数在底层的存储不能做到准确存储,十进制浮点数不能准确的化为二进制数,例如 0.3 在存储过程中转化为二进制后就变成了 0.30000000000001
    3. 布尔型(逻辑)类型boolean,值只能用 true/false 赋值,Java 中的逻辑表示为 true/false,不能用 0 或者非 0 表示,逻辑运算后的值也只能是 true/false
    4. char 类型:2 个字节,只能表示一个字符,一个字符用 '',字符串用 "" 与 C 一致。计算机无法直接存储字符,将字符转化成对应的十进制编码,再以二进制存储在计算机中,Java 用的 Unicode 编码表,其中包含了 ASCII 编码,Java 底层采用 Unicode 编码存储数据,char 类型可以进行计算操作,可以看成整数。
  2. 引用数据类型:牵扯到面向对象,Java 中有一个 String 的类,来表示字符串(先可以看成数据类型)。

三、数据类型转化

  1. 默认转化:小容量 -----> 大容量,例如 byte a = 10; int b = a; 不会报错直接转化,不用像 C 语言需要强制转化。

  2. 强制转化:大容量 -----> 小容量,强制转化与 C 一致,long a = 10; int b = (int)a; 但字面常量不能超过最大容量,使用的时候注意可能出现的问题:
    1. 溢出,因为数据类型本身的字节大小。
    2. 精度降低(浮点转为整数丧失了小数部分)。
  3. 大小关系:bytecharshort -> int -> long -> float -> doublelong/int 小于 float,浮点数在内存中不是简单表示大小按照特定要求分配的内存。
  4. 不同的数据类型相加最终的结果是容量最大的数据类型,输出时与字符串相加会变成字符串类型,运算符优先级不变。

四、运算符

  1. 计算运算符:计算时会隐式类型转换,例如 short a = 10; a = a + 10; 报错,a += 10; 等价于 a = (short)(a + 10);
  2. 逻辑与 / 逻辑或&&&|||,区别:&| 不会出现短路现象,&&(也叫短路与)、||(也叫短路或)会出现短路现象,短路现象:如果逻辑值已经确定,右边的表达式不执行,例如 false && a++ > ba 没有加一。
  3. 逻辑异或^,逻辑值相同返回 false,逻辑值不同返回 true
  4. 三目运算符:条件运算符,结果 = (表达式)? 结果一:结果二;如果表达式 == true 返回结果一,否则返回结果二,接收结果的变量必须和返回值数据类型一致,一定有返回值。
  5. 位运算符:是对整数的二进制位进行运算,正数移动后,符号位补 0,负数移动后,符号位补 1>><<)。
    1. >>:二进制比特位向左移动,后位空缺补 0
    2. <<:二进制比特位向右移动,前位空缺补 0
    3. >>>:左移,无论正负数,符号位都补 0
    4. &|:当左右两边是整数时,是位运算,& 只有 1&1 时才是 1| 只有 0|0 才是 0^(异或) 相同为 0,不同为 1,计算机存储时,都用的是补码存储的。

五、控制台输入

定义:Scanner scanner(自主命名) = new Scanner(System.in);// 创建一个实例,使用:变量 = scanner.next ();

六、方法

  1. 定义:与其他语言中的函数类似,方法是解决一类问题的组合,表示一种功能和行为,将完成某个功能的一段代码封装到有名称的代码块当中,方法不能独立存在要定义在类里面。
  2. 定义格式[访问权限修饰符][修饰符]返回值类型 方法名(参数){ [return 方法值]; }
  3. 调用:类名。方法名。
  4. 方法重载:方法名相同,参数不同(顺序、个数、类型)的多个方法,称为方法的重载,方法重载跟方法的返回值类型没有任何关系。

七、数组

  1. 是一个容器,可以存储一组相同数据类型的数据(是一种引用数据类型,是一个对象),数组中既可以存储基本数据类型,也可以存储引用数组类型。
  2. 数组在创建时必须给定一个长度,在创建后长度不可改变。
  3. 声明和创建
    1. 声明:int [] 数组名; 或 int 数组名[];,例如 int a[] = new int[5];// 在面向对象的语言中都需要创建一个实例,可以看成 C 中的 malloc,在内存中创建了 5 个 int 空间的区域。
    2. 创建 int 数组后会自动赋默认值 0;创建 String(引用数据类型)数组后会自动赋默认值 null;创建浮点数类型数组后会默认赋值 0.0
  4. 遍历(增强版 for 循环):例如 for(int 变量名:数组名){ System.out.print(tmp); },变量就是用来接收从数组中取出来的元素,数组名就是需要遍历的数组,转义字符 \t 解决格式问题。

八、面向对象和面向过程

  1. 面向过程:核心是将实现功能的过程也就是实现的步骤,封装为函数,在每一步执行时,调用对应的函数即可,以函数为单位进行代码组织的。
  2. 面向对象:是一种编程风格,是一种程序设计的思想,解决问题是以类为单位进行组织的,将同一类事物的属性和行为封装到一个类中,面向对象可以解决一类问题,找对应的类,类与类之间还可以存在继承关系,使得代码的扩展性更好,维护性更好。
  3. 面向对象是一种宏观的设计思想分析出完成这件事情需要哪些类,面向过程是一种微观具体的设计思想,是具体落地实现,程序设计时,两种思想都要用到。

九、类和对象

  1. 在 Java 中要使用一个类必须创建实例,因为如果每次使用时不创建,那么类和静态变量无区别,定义了一个类相当于定义了一个复杂的数据类型和多个方法的集合。
  2. 类中包含变量与方法,类是一类事物的行为(方法)和特征(变量)的集合;对象是类中具体的一个个体,是类中的实例,面向对象注重交互性,面向对象和面向过程是一种思维。
  3. 类是参考现实生活中的事物,将现实生活中的事物的特征和行为提取出来,是抽象的是概念上的定义;对象是实际存在的,是类中的个体,对象是以类为模版,在内存中创建的一个实例。
  4. 每 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值