Java基础学习总结记录

前言

之前基本确定之后的求职方向,但一直学习没有方向没有系统的路线,放假期间捋了一下自己的思路,感觉确确实实知识得系统的学,尤其基础的应用最多的技术知识。
Java是本科选修过,但是当时只是单纯考试考完基本上就是平常有项目的时候会用到,没有很系统的知识体系。既然以后大几率是往后端开发去靠近,那完全是有必要把基础夯实,构建完整的知识体系,所以也就利用时间过了一遍JavaSE基础,在此进行简单的记录总结。

Java基础(不定时更新)

  1. Java定义
    Java语言是Sun公司在1995年推出的高级编程语言,可使用编程语言对计算机下达命令让计算机完成人们需要的功能
    Java平台 由Java虚拟机(JVM)和Java应用编程接口构成
  2. Java特点
    1. 面向对象,只支持类间的单继承,可通过接口实现多继承
    2. 平台无关性,“一次编写,到处运行”,Java程序经过解释后生成.class字节码文件,字节码文件在JVM中运行(不同操作系统适配不同的JVM),只要系统中有JVM即可运行Java程序
    3. 简单性,Java语言中无指针,并且有垃圾回收机制解决程序员需管理内存的问
    4. 解释执行,Java编译器将Java程序编译成字节码文件,通过解释器对字节码文件解释执行
    5. 多线程,Java支持多个线程通过执行,执行的方法写在线程的run方法体中
    6. . 分布式,Java支持Internet应用的开发,提供网络应用编程的类库,包括URL、URLConnection、Socket等
    7. 安全性、健壮性、高性能等
  3. JavaSE、JavaEE、JavaME
    JavaSE:Java Standard Edition,Java标准版,可视为JavaEE的子类,允许开发和部署在桌面、服务器、嵌入式环境和实施环境中使用的Java应用程序
    JavaEE:Java Enterprise Edtion,Java企业版,多用于企业级开发,包括Web开发等
    JavaME:Java Platform Micro Edition,Java平台微型版,为在移动设备和嵌入式设备(例如手机、电视机顶盒、打印机)上运行的应用程序提供一个健壮灵活的环境
  4. JVM
    Java可可跨平台是由于JVM运行环境的支持,不同操作系统中提供不同的JVM对Java程序起翻译作用(Java虚拟机JVM本身不具备跨平台功能,每个操作系统下都有不同版本的虚拟机促使Java具有跨平台特性
  5. Java内存
    Java内存分为栈、堆、方法区、本地方法栈、寄存器五部分。
    1. Stack栈:存放方法中的局部变量,方法的运行需要在栈中进行
    2. Heap堆:new的实例化对象在堆中,堆中存储的是对象的地址值,数据均由默认值(整数0、浮点数0.0、字符\u0000、布尔false、引用类型null)
    3. Method Area方法区:存储.class相关信息(包括方法信息)
    4. Native Method Stack本地方法栈:与操作系统有关
    5. PC Register寄存器:与CPU有关
  6. JRE、JDK
    JRE:Java Runtime Environment:Java程序的运行时环境,包含JVM和运行时所需要的核心类库
    JDK:Java Development Kit,Java程序开发工具包,包含JRE和开发人员使用的工具
    如果单纯运行一个已有的Java程序则只需安装JRE即可;如果需要开发一个新Java程序,必须安装JDK
  7. Java编程规范
    在这里插入图片描述
  8. 关键字
    在这里插入图片描述
    关键字不可作为一般的标识符来使用。
  9. 标识符
    标识符为程序员自定义的内容,如类名称、方法名字、变量名字等。
    标识符可包含英文字母(区分大小写)、0-9数字、$(美元符号,最好不使用,Java中内部类.class中包含此符号)和_(下划线),但是不能以数字开头
    类名规范:大驼峰,所有的单词首字母均大写
    变量名/方法名规范:小驼峰,首字母小写,后面每个单词首字母大写
  10. 常量
    程序运行期间,固定不变的量。
    1. 字符串常量:“abc”
    2. 整数常量:3
    3. 浮点数常量:2.5
    4. 字符常量:‘A’
    5. 布尔常量:true、false
    6. 空常量:null,代表没有任何数据
  11. 变量
    变量即程序运行期间内容可发生改变的量。
//1. 变量创建方式1:
//数据类型 变量名称;
//变量名称= 数据值;
int a;
a = 2;
//2. 变量创建方式2:
//数据类型 变量名称 = 数据值,将=右边的数据值赋给=左边的变量
int b = 2;
变量必须赋值后才能使用,否则编译时会报错。作用域在定义变量始,至直接所属大括号结束为止
  1. 数据类型
    数据类型分为基本数据类型和引用数据类型。
基本数据类型
整数型 byte(1个字节) short(2个字节) int(4个字节) long(8个字节,使用long需要加上后缀L)
浮点型 float(4个字节) double(8个字节浮点型中默认为double,使用float需要加上后缀F)
字符型 char(2个字节)
布尔型 boolean(1个字节)
引用数据类型
字符串
数组
接口
Lambda

在这里插入图片描述
13. 数据类型转换
当数据类型不一样时会发生类型转换。数据类型转换分为显式转换和隐式转换。
1. 显式数据类型转换/强制类型转换:一般是大转小(可能存在数据丢失)

int num = (int)100L;//将8字节的long类型强制类型转换为4字节的int类型
2. 隐式数据类型转换/自动类型转换:一般是小转大,不需特殊处理系统自动完成。
double f= 2.15F;//float类型隐式类型转换为doubel(4字节转为8字节)
  1. 运算符
运算符 具体描述
算术运算符 + - * / %(取余)【一旦运算中有不同类型的数据,结果同数据类型范围大的类型;char:先转int再运算;String:+字符串拼接】
赋值运算符 += -= *= /= %=
比较运算符 == < > <= >= !=(结果为boolean值)
逻辑运算符 && ! 或
三元运算符 数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B
  1. 语句
    顺序语句:按照程序编写顺序依次执行
    选择语句:if if-else if-elseif-else swtich(小括号里可为byte short char int String enum) break continue
    循环语句:fori(正序) forr(倒序) do-while while
  2. 方法
    方法即将某个功能抽取出来的一个封装,需要使用此功能的时候调用方法即可,实现代码的复用性且解决代码冗余现象。
修饰符 返回值类型 方法名 (参数列表){
   
	......//方法体
	return 返回值
}//方法定义无先后顺序
  1. 方法重载与方法重写
    方法重载:overwrite,参数列表不同(个数、类型、顺序不同),其他方法返回值类型、方法名称相同(只需记住一个方法名称通过传入不同的参数调用不同的方法实现类似的多个功能)
    方法重写:override,子类继承重写父类的方法,实现类重写接口的方法(返回值可不同,需要小于等于父类方法的返回值,修饰符的作用域需要大于等于父类方法的修饰符)
  2. 数组
    1. 数组是一个容器可同时存放多个数据值
    2. 引用数据类型
    3. 存放的数据类型必须统一
    4. 数组长度在程序运行期间不可改变。
      数组的初始化分为静态初始化(指定内容)和动态初始化(指定长度)
//1.1 数组的静态初始化
int[] arr1 = new int[]{
   1,2,3};
//1.2 数组的静态初始化(省略new实例化部分)
int[] arr2 = {
   1,2,3};
//2. 数组的动态初始化
String[] str1 = new String[2];//可存放2个String字符串的数组str1

常见的数组问题:数组索引越界(ArrayIndexOutOfBoundsException);空指针异常(NullPointerException)
19. 类与对象
Java是面向对象的程序编程语言。
面向过程:当需要实现一个功能时需要考虑到每一个具体的步骤,详细处理每一个细节
面向对象:当需要实现一个功能时,不关心具体步骤,找一个已有该功能的方法来调用即可
类:一组相关属性(成员变量)和行为(成员方法)的集合,用来描述一类事物,属性即事物的状态信息,行为即事物可以做的事
在这里插入图片描述
20. 封装
面向对象语言的特征之一。封装就是将一些细节信息隐藏起来对于外界不可见。
方法是一种封装,private是一种封装。
21. 继承
子类 extends 父类
在这里插入图片描述
22. super和this
在这里插入图片描述
在这里插入图片描述
构造方法中super和this不可同时使用
23. 多态
多态是针对于一个对象而言的,表示这个对象有多个形态(extends继承/implements实现是多态的前提)
在这里插入图片描述

//对象的向下转型(隐式转型)
父类 父类对象名 = new 子类();
//使用instanceof进行类型判断
if(对象名 instanceof 子类名){
   
	子类 子类对象名 = (子类名)对象名;//对象的向上转型(强制转型)
}
  1. 接口
public interface 接口名称{
   
	......//抽象方法
	public abstract 返回值类型 方法名称(参数列表);//public abstract可省略
}

在这里插入图片描述
25. 异常
异常是指程序在执行过程中出现的非正常情况,最终会导致JVM的非正常停止。
Java中异常本身就是一个类,产生异常就是创建异常对象并抛出一个异常对象,在Java中处理异常的方式是中断处理。
异常分为error、exception。
error是不可恢复不可处理的(例如内存溢出等),应该尽量避免
exception分为编译期异常和运行时异常,对于编译期异常需要自定义捕获异常处理异常,对于运行时异常(空指针、数组边界溢出)程序会自动抛出异常,无需处理。
异常处理:throw new XXXException/方法外加throws XXXException/try-catch(try中创建异常捕获异常,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值