自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 30-初识JAVA内部类

1 内部类概述如果一个类存在的意义就是为指定的另一个类,可以把这个类放入另一个类的内部。就是把类定义在类的内部的情况就可以形成内部类的形式。A类中又定义了B类,B类就是内部类,B类可以当做A类的一个成员看待:2 特点1) 内部类可以直接访问外部类中的成员,包括私有成员2) 外部类要访问内部类的成员,必须要建立内部类的对象3) 在成员位置的内部类是成员内部类4) 在局部位置的内部类是局部内部类3 练习 : 内部类入门案例创建包: cn.tedu.innerclass创

2022-04-25 07:14:30 137

原创 29-反射学习

1 什么是反射?Reflection(反射) 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,也有称作“自省”。反射非常强大,它甚至能直接操作程序的私有属性。我们前面学习都有一个概念,被private封装的资源只能类内部访问,外部是不行的,但这个规定被反射赤裸裸的打破了。反射就像一面镜子,它可以在运行时获取一个类的所有信息,可以获取到任何定义的信息(包括成员变量,成员方法,构造器等),并且可以操纵类的字段、方法、构造器等部分。2 为什么需要反射

2022-04-25 07:13:16 137

原创 28-注解与自定义注解

1 注解注解很厉害,它可以增强我们的java代码,同时利用反射技术可以扩充实现很多功能。它们被广泛应用于三大框架底层。传统我们通过xml文本文件声明方式(如下图,但是XML比较繁琐且不易检查),而现在最主流的开发都是基于注解方式,代码量少,框架可以根据注解去自动生成很多代码,从而减少代码量,程序更易读。例如最火爆的SpringBoot就完全基于注解技术实现。注解设计非常精巧,初学时觉得很另类甚至多余,甚至垃圾。有了java代码干嘛还要有@注解呢?但熟练之后你会赞叹,它竟然可以超越java代码的功能,

2022-04-25 07:12:08 141

原创 27-设计模式之单例设计模式

1 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。JAVA一共有23种设计模式,我们今天首先来学其中一种:单例设计模式2 单例设计模式单例模式可以说是大多数开发人员在实际中使用最多的,常见的Spring默认创建的bean就是单例模式的。单例模式有很多好处,比如可节约系统内存空间,控制资源的使用。其中

2022-04-25 07:10:55 98

原创 26-同步锁-线程安全问题解决方案

1 同步锁1.1 前言经过前面多线程编程的学习,我们遇到了线程安全的相关问题,比如多线程售票情景下的超卖/重卖现象.上节笔记点这里-进程与线程笔记我们如何判断程序有没有可能出现线程安全问题,主要有以下三个条件:在多线程程序中 + 有共享数据 + 多条语句操作共享数据多线程的场景和共享数据的条件是改变不了的(就像4个窗口一起卖100张票,这个是业务)所以思路可以从第3点"多条语句操作共享数据"入手,既然是在这多条语句操作数据过程中出现了问题那我们可以把有可能出现问题的代码都包裹起来,一

2022-04-25 06:58:38 190

原创 25-进程与线程

进程与线程1 进程1.1 进程的概念进程就是正在运行的程序,它代表了程序所占用的内存区域1.2 进程的特点独立性 进程是系统中独立存在的实体,它可以拥有自己独立的资源,每个进程都拥有自己私有的地址空间,在没有经过进程本身允许的情况下,一个用户进程不可以直接访问其他进程的地址空间 动态性 进程与程序的区别在于,程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合,程序加入了时间的概念以后,称为进程,具有自己的生命周期和各种不同的状态,这些概念都是程序所不具备的. 并发性

2022-04-25 06:57:37 104

原创 24JAVA Set HashSet Map HashMap

1 Map接口1.1 概述Java.util接口Map<K,V>类型参数 : K - 表示此映射所维护的键 V – 表示此映射所维护的对应的值也叫做哈希表、散列表. 常用于键值对结构的数据.其中键不能重复,值可以重复1.2 特点Map可以根据键来提取对应的值 Map的键不允许重复,如果重复,对应的值会被覆盖 Map存放的都是无序的数据 Map的初始容量是16,默认的加载因子是0.75TIPS:源码摘抄:static final int DEFAULT_INITIA

2022-04-25 06:55:52 116

原创 23JAVA 泛型 Collection List Set

集合我们接下来要学习的内容是Java基础中一个很重要的部分:集合1 Collection接口1.1 集合前言Java语言的java.util包中提供了一些集合类,这些集合类又称之为容器提到容器不难想到数组,集合类与数组最主要的不同之处是,数组的长度是固定的,集合的长度是可变的,而数组的访问方式比较单一,插入/删除等操作比较繁琐,而集合的访问方式比较灵活常用的集合类有List集合,Set集合,Map集合,其中List集合与Set集合继承了Collection接口,各个接口还提供了不同的实现

2022-04-25 06:54:40 148

原创 22JAVA 初识序列化与反序列化

初识序列化与反序列化1 概述序列化是指将对象的状态信息转换为可以存储或传输形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后可以通过从存储区中读取或者反序列化对象的状态,重新创建该对象.序列化:利用ObjectOutputStream,把对象的信息,按照固定的格式转成一串字节值输出并持久保存到磁盘反序列化:利用ObjectInputStream,读取磁盘中之前序列化好的数据,重新恢复成对象2 特点/应用场景需要序列化的文件必须实现Serializable接口,用

2022-04-25 06:51:08 93

原创 21JAVA IO流 File 字节流 字符流

IO简介1 流Stream在学习IO流之前,我们首先需要学习的概念就是Stream流为了方便理解,我们可以把数据的读写操作抽象成数据在"管道"中流动,但需注意:1.流只能单方向流动2.输入流用来读取 → in3.输出流用来写出 → out4.数据只能从头到尾顺序的读写一次所以以程序的角度来思考,In/out 相对于程序而言的输入(读取)/输出(写出)的过程.2 IO流的继承结构在java中,根据处理的数据单位不同,可以把流分为字节流和字符流字节流 : 针对二进制文件字符流 :

2022-04-25 06:49:48 184

原创 20JAVA 正则表达式 包装类 自动装箱_自动拆箱 BigDecimal

1 正则表达式Regex1.1 概述正确的字符串格式规则。常用来判断用户输入的内容是否符合格式的要求,注意是严格区分大小写的。1.2 常见语法1.3 String提供了支持正则表达式的方法Matches(正则) : 当前字符串能否匹配正则表达式replaceAll(正则,子串) : 替换子串split(正则) : 拆分字符串1.4 练习:测试输入身份证号创建包: cn.tedu.api创建类: TestRegex.javapackage cn.tedu.api;

2022-04-23 08:29:52 79

原创 19JAVA API Object String StringBuffer_StringBuilder

1 前言亲爱的小伙伴萌,目前我们看到的是Java基础部分的一个新的部分API,这是个啥,又能做啥呢?其实可以概括成一句话:帮助我们站在巨人的肩膀上,实现更加高效的开发,那么我们来一探究竟吧~2 什么是APIAPI(Application Programming Interface,应用程序接口)是一些预先定义的函数。目的是提供应用程序与开发人员基于某软件可以访问的一些功能集,但又无需访问源码或理解内部工作机制的细节.API是一种通用功能集,有时公司会将API作为其公共开放系统,也就是公司制定

2022-04-23 08:28:28 149

原创 18 接口 面向接口开发

接口1 接口的概念与之前学习过的抽象类一样,接口( Interface )在Java中也是一种抽象类型,接口中的内容是抽象形成的需要实现的功能,接口更像是一种规则和一套标准.2 接口格式3 接口的特点:通过interface关键字来定义接口 通过implements让子类来实现接口 接口中的方法全部都是抽象方法(JAVA8) 可以把接口理解成一个特殊的抽象类(但接口不是类!!!) 类描述的是一类事物的属性和方法,接口则是包含实现类要实现的方法 接口突破了java单继承的局限

2022-04-23 08:27:13 399

原创 17JAVA 抽象类

抽象类1 概念Java中可以定义被abstract关键字修饰的方法,这种方法只有声明,没有方法体,叫做抽象方法.Java中可以定义被abstract关键字修饰的类,被abstract关键字修饰的类叫做抽象类如果一个类含有抽象方法,那么它一定是抽象类 抽象类中的方法实现交给子类来完成2 抽象方法的格式3 特点abstract 可以修饰方法或者类 被abstarct修饰的类叫做抽象类,被abstract修饰的方法叫做抽象方法 抽象类中可以没有抽象方法 如果类中有抽象方法,那么

2022-04-23 08:24:27 112

原创 16JAVA 异常

异常1 概述异常是一些用来封装错误信息的对象它由异常的类型、提示信息、报错的行号提示三部分组成2 异常的继承结构3 异常的处理方式当程序中遇到了异常,通常有两种处理方式:捕获或者向上抛出当一个方法抛出异常,调用位置可以不做处理继续向上抛出,也可以捕获处理异常大家可以结合生活中的例子:如果工作中遇到了问题,我们可以选择自己处理(捕获),或者交给上级处理(抛出)捕获方式:抛出方式:对于不想现在处理或者处理不了的异常可以选择向上抛出方式:在方法上设置异常的抛出管道,

2022-04-23 08:23:37 79

原创 15面向对象之多态

多态1. 概念多态是面向对象程序设计(OOP)的一个重要特征,指同一个实体同时具有多种形式,即同一个对象,在不同时刻,代表的对象不一样,指的是对象的多种形态。可以把不同的子类对象都当作父类来看,进而屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,统一调用标准。比如,你的女盆友让你买点水果回来,不管买回来的是苹果还是西瓜,只要是水果就行,这个就是生活中多态的体现再比如,小猫、小狗、小猪我们可以把他们都归纳成小动物,每种小动物都需要吃东西,所以我们可以统一设置他们都必须吃,但是每

2022-04-23 08:19:58 73

原创 14JAVA static final 静态_构造_局部代码块之间的关系

1 static1.1 概念是java中的一个关键字用于修饰成员(成员变量和成员方法)1.2 特点可以修饰成员变量与成员方法 随着类的加载而加载,优先于对象加载 只加载一次,就会一直存在,不再开辟新空间, 直到类消失才一起消失 静态资源也叫做类资源,全局唯一,被全局所有对象共享 可以直接被类名调用 静态只能调用静态,非静态可以随意调用 static不能和this或者super共用,因为有static时可能还没有对象1.3 练习:static入门案例创建包: cn.tedu

2022-04-23 08:18:12 73

原创 13 继承 super

1 继承1.1概念继承是面向对象最显著的一个特征继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并扩展新的能力.Java继承是会用已存在的类的定义作为基础建立新类的技术新类的定义可以增加新的数据或者新的功能,也可以使用父类的功能,但不能选择性的继承父类(超类/基类)这种继承使得复用以前的代码非常容易,能够大大的缩短开发的周期,降低开发费用.1.2 特点使用extends关键字来表示继承关系 相当于子类把父类的功能复制了一份 Java只支持单继承 继承可以传递

2022-04-23 08:16:48 58

原创 12 面向对象2 构造函数 构造代码块 this

1 构造方法1.1 概念构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法构造方法的主要功能就是完成对象创建或者初始化当类创建对象(实例化)时,就会自动调用构造方法构造方法与普通方法一样也可以重载.1.2 形式与类同名,且没有返回值类型,可以含参也可以不含参1.3 练习:构造方法创建对象/构造方法赋值创建包: cn.tedu.oop创建类: TestConstructor.javapackage cn.tedu.oop;/**本类用于测试构造方法*/p

2022-04-23 08:15:42 78

原创 11 面向对象 类 对象 封装

面向对象概念在学习面向对象之前,我们可以先了解一下面向过程。面向过程是一种思想,意思是我们要做任何事,都需要亲力亲为,强调的是过程。面向对象也是一种编程思想,相对于面向过程,我们可以由原来问题的执行者变为指挥者,进而把生活中很多复杂的问题变得简单化。面向过程强调的是过程,比如,把大象装冰箱,一共分3步:第1步:打开冰箱门第2步:把大象放进去第3步:关上冰箱门而面向对象强调的是结果,比如:什么样的冰箱?什么样的大象?谁负责把大象装进去?有没有发现,如果是面向对象的话,干这件事的主体并不是

2022-04-23 07:56:25 225

原创 10 冒泡排序

冒泡排序1 概念冒泡排序(Bubble Sort),是计算机科学领域中较简单的一种排序算法。它重复地走访需要进行排序的元素,依次比较两个相邻的元素,如果元素的顺序(如从大到小、首字母从A到Z)错误就把元素的位置互换。走访元素是重复进行的,直到没有任何相邻位置上的元素需要交换位置,排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。光看理论可能会有些迷糊,没有关系,接下来我们详细学

2022-04-22 21:17:13 40

原创 9JAVA 数组

1 数组1.1 概念数组Array,标志是[ ] ,用于储存多个相同类型数据的集合想要获取数组中的元素值,可以通过脚标(下标)来获取数组下标是从0开始的,下标的最大值是数组的长度减11.2 创建数组数组的创建方式一般分为动态初始化和静态初始化动态初始化 int[] a = new int[5]; 静态初始化 int[] b = new int[]{1,2,3,4,5}; int[] c = {1,2,3,4,5};1.3 创建数组过程分析程序创建数组 int[] a =

2022-04-22 21:15:50 61

原创 8JAVA 嵌套for循环 while do-while

1 嵌套for循环1.1 概述存在至少2层for循环,根据外层的条件,判断里层能否执行如果能执行,就把里层代码都循环完毕后,再继续判断是否执行外层循环的下一次循环1.2 嵌套for形式1.3 练习:嵌套for循环入门案例创建包: cn.tedu.basic创建类: TestForDemo.java总结1:外循环执行1次,内循环执行多次总结2:外循环控制行,内循环控制列package cn.tedu.basic;/*本类用于测试嵌套for循环*/public clas

2022-04-22 21:14:52 590

原创 7JAVA 方法 局部变量 成员变量

1 变量1.1 概念可以改变的数,称为变量。在Java语言中,所有的变量在使用前必须声明。一般通过“变量类型 变量名 = 变量值 ;”这三部分来描述一个变量。如:int a = 3 ;变量的使用原则:就近原则,即尽量控制变量的使用范围到最小1.2 局部变量位置:定义在方法里或者局部代码块中注意:必须手动初始化来分配内存.如:int i = 5;或者int i; i = 5;作用域:也就是方法里或者局部代码块中,方法运行完内存就释放了1.3 成员变量位置:定义在类里方法外注意

2022-04-22 21:13:53 66

原创 6分支结构

1 分支结构1.1 概述顺序结构的程序虽然能解决计算、输出等问题但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构1.2 形式1.3.1 练习:商品打折案例创建包: cn.tedu.basic创建类: TestDiscount.java需求: 接收用户输入的原价。满1000打9折;满2000打8折;满5000打5折package cn.tedu.basic;import java.util.Scanner;/**需求:接收用户输入的原价,满1000打9

2022-04-22 18:01:55 106

原创 5 初识JAVA运算符

1 运算符1.1 概述运算符 用于连接 表达式 的 操作数,并对操作数执行运算。例如,表达式num1+num2,其操作数是num1和num2,运算符是”+”。在java语言中,运算符可分为5种类型:算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符。根据操作数的不同,运算符又分为单目运算符、双目运算符和三目运算符。单目运算符只有一个操作数,双目运算符有两个操作数,三目运算符则有三个操作数。位运算符涉及到二进制位的运算,在java 程序中运用不是很多。1.2 运算符速查表

2022-04-22 15:04:51 95

原创 4-JAVA语法基础

1 JAVA语法基础1.1 标识符标识符可以简单的理解成一个名字。在Java中,我们需要标识代码的很多元素,包括类名、方法、字段、变量、包名等等。我们选择的那个名称就称为标识符,一个正确的标识符需要遵循以下规则:1. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符2. 不能以数字开头。如:123name 就是不合法3. 标识符严格区分大小写。如: tmooc 和 tMooc 是两个不同的标识符4. 标识符的命名最好能反映出其作用,做到

2022-04-22 15:03:37 68

原创 3 HelloWorld案例

1.1 工作空间设置工作空间就是一个文件夹,用来保存我们所有的开发文件和代码等等.工作空间也是可以切换的,但是切换了工作空间,我们对于eclipse的设置就重置了.后续我们自己写的代码可以去这个位置找到.可以如下图,选择工作空间的存放目录1.2 eclipse设置java视图设置JAVA视图是为了开发时更加方便2 完成第一个Java案例HelloWorld2.1 创建java工程day012.2 创建包cn.tedu.hello2.3 创建类HelloWorld

2022-04-22 14:53:14 114

原创 2 JDK

1.1 JDK概述JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了:1.JAVA开发工具(jdk\bin)2.基础开发库(jdk\jre\lib\rt.jar)3.基础开发库的源码(jdk\src.zip)1.2 JDK下载与安装本次使用的是JDK1.8,详细安装步骤可以参见”JDK培优安装手册”.注意事项:1.同时安装多个JDK时需要使用执行环境变量来确认使用的是哪个jdk2.安装时选择默认选项

2022-04-22 13:57:34 33

原创 1 计算机基础知识

1.1计算机计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行,自动、高速处理数据的现代化智能电子设备。常见的形式有台式计算机、笔记本计算机。按照规模分为微型机、小型机、大型机、巨型机(超级计算机)等。计算机发明者约翰•冯•诺依曼。计算机是20世纪最先进的科学技术发明之一,对人类的生产活动和社会活动产生了极其重要的影响,并以强大的生命力飞速发展。它的应用领域从最初的军事科研应用扩展到社会的各个领域,已形成了规模巨大的计算机产业,带动了全球范围的技术进步,由此引发了深刻的社..

2022-04-22 11:57:36 110

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除