![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 67
交流学习
程序员黑马二代
这个作者很懒,什么都没留下…
展开
-
API-内部类
1 内部类概述如果一个类存在的意义就是为指定的另一个类,可以把这个类放入另一个类的内部。就是吧类定义在类的内部的情况就可以形成内部类的形式。A类中又定义了B类,B类就是内部类,B类可以当做A类的一个成员看待:2 特点1) 内部类可以直接访问外部类中的成员,包括私有成员2) 外部类要访问内部类的成员,必须要建立内部类的对象3) 在成员位置的内部类是成员内部类4) 在局部位置的内部类是局部内部类...原创 2021-10-03 22:56:51 · 120 阅读 · 0 评论 -
API-反射技术
1 什么是反射Reflection(反射)是JAVA程序开发语言的特征之一,它允许运行中的JAVA程序对自身进行检查,或者说“自审”,也有称作“自省”。反射非常强大,他甚至能直接操作程序的私有属性。我们前面学习都有一个概念,被private封装的资源只能内部类访问,外部是不行的,但这个规定被反射赤裸裸打破了。反射就像一面镜子,他可以在运行时获取一个类的所有信息,可以获取到任何定义的信息(包括成员变量,成员方法,构造器等),并且可以操纵类的字段,方法,构造器等部分。2 为什么需要反射如果想原创 2021-10-03 22:52:11 · 132 阅读 · 0 评论 -
注解与自定义注解
1 注解注解很厉害,他可以增强我们的Java代码,同事利用反射技术可以扩充实现很多功能。他们被广泛应用于三大框架底层。传统我们通过xml文本文件声明方式(如下图,但是XML比较繁琐且不易检查),而现在最主流的开发都是基于注解方式,代码量少,框架可以根据注解去自动生成很多代码,从而减少代码量,程序更易读。例如最火爆的SpringBoot就完全基于注解技术实现。注解设计非常精巧,初学时觉得很另类甚至多余,甚至垃圾。有了Java代码干嘛还要有@注解呢?但熟练之后你会赞叹,它竟然可以超越Java代码原创 2021-10-03 22:32:06 · 81 阅读 · 0 评论 -
设计模式之单例设计模式
1 设计模式(Design pattern)代表了最佳的实践,通常呗有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间实验和错误总结出来的。JAVA一共有23中设计模式2 单例设计模式单例模式可以说是大多数开发人员在实际中使用最多的,常见的Spring默认创建的bean就是单例模式。单例模式有很多好处,比如可节约系统内存空间,控制资源的使用。其中单例模式最重要的是确保对象只有一个原创 2021-10-03 21:44:17 · 55 阅读 · 0 评论 -
同步锁-线程安全问题解决方法
1 同步锁1.1 前言我们如何判断程序有没有可能出现线程安全问题,主要有以下三个条件:在多线程程序中 + 有共享数据 + 多条语句操作共享数据多线程的场景和共享数据的套接是改变不了的(就像4个窗口一起卖100张票,这个是业务)所以思路可以从第3点“多条语句操作共享数据”入手,既然是在这多条语句操作数据过程中出现了问题那我们可以把有可能出现问题的代码都包裹起来,一次只让一个线程来执行1.2同步与异步那怎么"把有可能出现问题的代码都包裹起来"呢?我们可以使用synchr...原创 2021-10-03 21:20:49 · 1636 阅读 · 0 评论 -
进程于线程
1 进程1.1 进程的概念进程就是正在运行的程序,它会占用的内存区域,由CPU进行执行与计算。1.2 进程的特点 ·独立性 进程是系统中独立存在的实体,他可以拥有自己独立的资源,每个进程都拥有自己私有的地址空间,在没有经过进程本身允许的情况下,一个用户进程不可以直接访问其他进程的地址空间 · 动态性 进程与进程的区别在于,程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合,程序加入了时间的概念以后,称为进程,具有自己的生...原创 2021-10-03 20:12:45 · 112 阅读 · 0 评论 -
JAVA Set HashSet Map HashMap
1 Map接口1.1 概述Java.util接口Map<k,V>类型参数:K -表示此映射所维护的键V -表示此映射所维护的对应的值也叫做哈希表,散列表,常用于键值对结果的数据,其中键不能重复,值可以重复√1.2 特点 1. Map可以根据键来提取对应的值 2. Map的键不允许重复,如果重复,对应的值会被覆盖 3. Map存放的都是无序的数据 4. Map的初始容量是16,默认的加载因子是0.761.3 继承结构1...原创 2021-10-03 13:37:27 · 103 阅读 · 0 评论 -
泛型Collection List Set
集合1 Collection接口1.1 集合前言Java语音的Java.util包中提供了一些集合类,这些集合类又称之为容器提到容器不难想到数组,集合类与数组最主要的不同之处是,数组的长度是固定的,集合的长度是可变的,而数组的访问方式比较单一,插入/删除等操作比较繁琐,而集合的访问方式比较灵活常用的集合类有LIst集合,Set集合,Map集合,其中List集合与Set集合继承了Collection接口,各个接口还提供了不同的实现类。1.2 集合概念集合的英文名称是Coll..原创 2021-10-02 21:07:41 · 100 阅读 · 0 评论 -
序列化与反序列化
1 概述序列化是指将对象的状态信息转换为可以存储或传输形式的过程,在序列化期间,对象将其当前状态写入到临时或持久性存储区,以后可以通过从存储区中读取或者反序列化对象的状态,重新创建对象。序列化:利用ObjectOutputStream,把对象的信息,按照固定的构式转成一串字节值输出并持久保存到磁盘反序列化:利用ObjectInputStream,读取磁盘中之前序列化好的数据,重新恢复成对象2 特点/应用场景1.需要序列化的文件必须实现Serializable接口,用来启用序列化功能原创 2021-10-02 19:54:45 · 124 阅读 · 0 评论 -
IO流 File 字节流 字符流
IO 简介1 流Stream1.流只能单方向流动2.输入流用来读取--> in3.输出流用来写出--> out4.数据只能从头到尾顺序的读写一次所以以程序的角度来思考,In/out相对于程序而言的输入(读取)/输出(写出)的过程2 IO流的继承结构在Java中,根据处理的数据单位不同,可以把流分为字节流和字符流字节流:针对二进制文件字符流:针对文本文件再结合对应类型的输入和输出方向,常用的流有:File字节流:针对二进制文件InputSt原创 2021-10-02 17:10:36 · 105 阅读 · 0 评论 -
正则表达式 包装类 自动装箱/自动拆箱BigDecimal
1 正则表达式Regex1.1 概述正确的字符串构式规则.常用来判断用户输入的内容是否符合构式的要求,注意是严格区分大小写1.2 常见语法1.3 String提供了支持正则表达式的方法Matches(正则):当前字符串能否匹配正则表达式replaceAll(正则,子串):替换子串split(正则):拆分字符串2 包装类把基本类型进行包装,提供更加完善的功能.基本类型是没有任何功能的,只是一个变量,记录值,而包装类课可以有更加丰富的功能2.1 与基本类型的.原创 2021-09-14 21:52:02 · 120 阅读 · 0 评论 -
API Object String StringBuffer/StringBuilder
1 什么是APIAPI(Application Programming Interface,应用程序接口) 是一些预先定义的函数.目的是提供应用程序与开发人员基于某软件可以访问的一些功能集,但又无需访问源码或理解内部工作机制的细节.API是一种通过功能集,有事公司会将API作为其公共开发系统,也就是公式指定自己的系统接口标准,当需要进行系统整合,自定义和程序应用等操作时,公司所有成员都可以通过该接口标准调用源代码2 Object2.1 概念Object类是所有java类的祖先,也原创 2021-09-14 20:42:37 · 51 阅读 · 0 评论 -
接口 面向接口开发
接口1 接口的概念与抽象类一样,接口(Interface)在java中也是一种抽象类型,接口中的内容是抽象形成的需要实现的功能,接口更像是一种规则和一套标准2 接口构式3 接口的特点:1.通过interface 关键字来定义接口2.通过implements让子类来实现接口3.接口中的方法全部都是抽象方法4.可以把接口理解成一个特殊的抽象类(但接口不是类!!!)5.类描述的是一类事物的属性和方法,接口则是包含实现类要实现的方法6.接口突破了java单继承的局限.原创 2021-09-13 20:23:46 · 267 阅读 · 0 评论 -
java抽象类
抽象类1 概念java中可以定义被abstract关键字修饰的方法,这种方法只有声明,没有方法体,叫做抽象方法.java中可以定义被abstract关键字修饰的类,被abstract关键字修饰的类叫做抽象类1.如果一个类含有抽象方法,那么它一定是抽象类2.抽象类中的方法实现交给子类来完成2 抽象方法的构式3 特点1.abstract可以修饰方法或者类2.被abstrct修饰的类叫做抽象类,被abstract修饰的放放风叫做抽象方法3.抽象类中可以没有抽象方法4原创 2021-09-13 19:54:28 · 68 阅读 · 0 评论 -
java异常
异常1 概述异常是一些用来封装错误信息的对象它由异常的类型,提示信息,报错的行号提示三部分组成2 异常的继承结构3 异常的处理方式当程序中遇到了异常,通常有两种处理方式:捕获或者向上抛出当一个方法抛出异常,调用位置可以不做处理继续向上抛出,也可以捕获处理异常可以结合生活中的例子:如果工作中遇到了问题,我们可以选择自己处理(捕获),或者交给上级处理(抛出)捕获方式:抛出方式:对于不想现在处理或者处理不了的异常可以选择向上抛出方式: 在方法上设置异常的..原创 2021-09-13 19:40:46 · 76 阅读 · 0 评论 -
面向对象之多态
多态1.概念多态是面向对象程序设计(OOP)的一个重要特征,指同一个实体同时具有多种形势,寄同一个对象,在不同时刻,代表的对象不一样,指的是对象的多种形态可以把不同的子类对象都当作父类来看,进而屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,统一调用标准.比如,你的女朋友让你买点水果回来,不管买回来的是苹果还是西瓜,只要是水果就行,这个就是生活中多态的体现在比如,小猫,小狗,小猪我们可以把他们都归纳成小动物,每种小动物都需要吃东西,所以我们可以统一设置他们必.原创 2021-09-11 11:12:02 · 325 阅读 · 0 评论 -
static final 静态/构造/局部代码块之间的关系
1 static1.1 概念是java中的一个关键字用于修饰成员(成员变量和成员方法)1.2 特点1.可以修饰成员变量与成员方法2.随着类的加载而加载,优先于对象加载3.只加载一次,就会一直存在,不再开辟新空间,直到类消失才一起消失4.静态资源也叫做类资源,全局唯一,被全局所有对象共享5.可以直接被类名调用6.静态只能调用静态,非静态可以随意调用7.static不能和this或者super共享,因为有static时可能还没有对象2 静态代码块. 构...原创 2021-09-11 10:24:50 · 64 阅读 · 0 评论 -
继承 super
1 继承1.1 概念继承是面向对象最显著的一个特征继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并扩展新的能力java继承是会用已存在的类的定义作为基础建立新类的技术新类的定义可以增加新的数据或者新的功能,也可以使用父类的功能,但不能选择性的继承父类(超类/基类)这种继承使得复用一区的代码非常容易,能够大大的缩短开发的周期,降低开发费用1.2 特点1.使用extends关键字来表示继承关系2.相当于子类把父类的功能复制了一份3.java只支持单继原创 2021-09-10 20:58:49 · 124 阅读 · 0 评论 -
面向对象 构造方法 构造代码块this
1 构造方法1.1 概念构造方法是一种特殊的方法,他是一个与类同名且没有返回值类型的方法构造方法的主要功能就是完成对象创建或者初始化当类创建对象(实例化)时,会自动调用构造方法构造方法与普通方法一样也可以重载.1.2 形势关于构造函数怎么记忆:1.特点:方法名与类名相同,且没有返回值类型2.执行时机:创建对象时立即执行3.默认会创建无参构造,但是,如果自定义了含参构造,默认的无参构造会被覆盖,注意要手动添加2 构造代码块与局部代码块2.1 形势1 |.原创 2021-09-10 20:21:49 · 88 阅读 · 0 评论 -
面向对象 类 对象 封装
面向对象概念在学习面向对象之前,我们可以先了解一下面向过程.面向过程是一种思想,意思是我们要做任何事,都需要亲力亲为,强调的是过程面向对象也是一种编程思想,相对于面向过程,我们可以由原来问题的执行者变为指挥者,进而把生活中很多负责的问题变得简单化.面向对象过程强调的是过程,比如,把大象装冰箱,一共分3步:第一步: 打开冰箱门第二步:把大象放进去第三步:关上冰箱门而面向对象强调的是结果,比如:什么样的冰箱?什么样的大象?谁负责把大象装进去?有没有发现,如果是面向对象原创 2021-09-10 19:41:19 · 148 阅读 · 0 评论 -
数组 数组工具类 二维数组
1 数组1.1 概念数组Array, 标志是[ ],用于储存多个相同类型数据的集合想要获取数组中的原数值,可以通过脚标(下标)来获取数组下标是从0开始的,下标的最大值是数组的长度减11.2 创建数组数组的创建方式一般分为动态初始化和静态初始化1.动态初始化int[ ] a = new int[5];2.静态初始化int[] b = new int []{1,2,3,4,5};int [] c = {1,2,3,4,5}1.3 创建数组过程分析程...原创 2021-09-09 20:24:25 · 112 阅读 · 0 评论 -
嵌套for循环 while do-while
1 嵌套for循环1.1 概述存在至少2层for循环,根据外成的条件,判断里层能否执行如果能执行,就把里层代码都循环完毕后,再继续判断是否执行外层循环的下一次循环1.2 嵌套for形势2 break与continue2.1 概念break: 直接结束当前循环,跳出循环体,简单粗暴break以后的循环体中的语句不会继续执行,循环体外的会执行注意如果是嵌套for循环,在内层循环遇到了break,只会跳出当前这一层内循环continue:跳出本轮循环,继续下一...原创 2021-09-09 19:33:50 · 1356 阅读 · 0 评论 -
java方法 局部变量 成员变量
1 变量1.1 概念可以改变的数,称为变量.在java语言中,所有的变量在使用前必须声明.一般通过"变量类型 变量名=变量值;"在三部分来描述一个变量.变量的使用原则:就近原则,即尽量控制变量的使用范围到最小.1.2 局部变量位置:定义在方法里或者局部代码块中注意:必须手动初始化来分配内存.如:int i = 5 或者int i; i=5;作用域:也就是方法里或者局部代码块中,方法运行完内存就释放了1.3.成员变量位置:定义在类里方法外注意:不用初始化,也会自动.原创 2021-09-07 23:24:55 · 178 阅读 · 0 评论 -
分支结构 switch结构 for循环
1.分支结构1.1概述顺序结构的程序虽然能解决计算,输出问题但不能做判断再选择.对于要先做判断再选择的问题就要使用分支结构1.2形势单分支结构if(判断条件){代码}多分支结构if(判断条件){满足判断条件,执行代码1}else{不满足判断条件,执行代码2}嵌套分支结构if(判断条件1){满足条件1,执行代码1}else if(判断条件2){满足条件2,执行代码2}else if(判断条件3){满足条件3,执行代码3}e原创 2021-09-07 23:01:54 · 143 阅读 · 0 评论 -
java运算符
1.运算符1.1概述运算符 用于连接 表达式的操作数,并对操作数执行运算.在java语言中,运算符可分为5中类型:算术运算符.赋值运算符.关系运算符.逻辑运算符.位运算符.根据操作数的不同,运算符有分为单目运算符,双目运算符和三目运算符.单目运算符只有一个操作数,双目运算符有两个操作数,三目运算符则有三个操作数.位运算涉及到二进制的运算,在java程序中运用不是很多.1.2运算符速查表...原创 2021-09-06 22:45:04 · 76 阅读 · 0 评论 -
java基础 标识符 关键字 注释 变量 数据类型与类型转换
java语法基础1.标识符标识符可以简单的理解成一个名字.在java中,我们需要标识代码的很多元素,包括类名,方法,字段,变量,包名等等.我们选择的那个名称就称为标识符,一个正确的标识符需要遵循以下规则:1.标识符可以由字母,数字,下划线(_),美元符($)组成,但不能包括@,%,空格等其他特殊字符2.不能以数字开头.如:123name就是不合法3.标识符严格区分大小写.如:tmooc 和tMooc是两个不同的标识符4.标识符的命名最好能反映出其作用,做到见名知意.5.标识符原创 2021-09-05 21:00:49 · 188 阅读 · 0 评论 -
Java基础知识
1.java语言平台版本1.J2SE/JAVASE--Standanrd Edition--标准版/基础版开发普通桌面和商务应用程序提供解决方案,该技术体系是其他两者的基础.2.J2EE/JAVAEE--Enterprise Edition--企业版/商务版是为开发企业环境下得应用程序提供的一套解决方案,主要针对于企业级应用程序开发.3.j2me/javame--Micro Edition--微型版/移动版是为开发移动设备和嵌入式设备(电器,机器人,机顶盒..)提供的解决方案.jav原创 2021-09-05 15:27:05 · 73 阅读 · 0 评论