Java小白学习之旅
文章平均质量分 77
Java小白学习之旅,该专栏用来记录慕课网Java工程师课程的学习历程
一杯敬朝阳一杯敬月光
生命不息,代码不止
展开
-
docker入门一
docker是什么docker是一个用来装程序及其环境的容器,属于Linux容器的一种封装,提供简单易用的容器使用接口,它是目前最流行的Linux解决方案。为什么需要docker环境配置的难题 为了解决环境配置的问题,有了虚拟机的概念,所谓虚拟机就是带环境一起安装,可以在一个操作系统里面运行另一个操作系统。例如我们Windows系统中,安装一个Linux的虚拟机,虚拟机里面可以运行程序,有其硬盘、CPU、内存,看上去和真实的机器是一样的,对于外层的Windows系统来说,虚拟机只是一个普通的程序原创 2021-08-31 01:27:27 · 107 阅读 · 0 评论 -
阶段五/分布式基础
目录什么是分布式分布式的作用单体和分布式的对比CAP定理集群、分布式、微服务的区别什么是分布式权威定义利用物理架构形成多个自治的处理元素,不共享主内存,但是通过发送信息合作。——Leslie Lamport实际项目的演进过程单机:一个项目,大而全 集群:多台机器,部署同样的应用 分布式:全县系统、员工系统、请假系统分布式的作用单体应用的问题:应用代码耦合严重,功能扩展难 新需求开发交付周期长,测试工作量大 新加入的开发同事需要很长时间才能熟悉系统.原创 2021-04-24 01:06:51 · 81 阅读 · 0 评论 -
阶段五/线程池
初识线程池可以复用线程 可以控制资源的总量若不使用线程池,每个任务都新开一个线程处理一个线程 for循环创建线程 当任务数量上升到1000这样开销太大,我们希望有固定数量的线程,来执行这1000个线程,这样就避免了反复创建并销毁线程所带来的开销问题。为什么要使用线程池问题一:反复创建线程开销大 问题而:过多的线程会占用太多的内存 解决以上两个问题的思路 用少量的线程-避免内存占用过多 让这部分线程都保持工作,且可以反复执行任务—避免生命周期的损耗 线程池的好处...原创 2021-04-23 23:41:02 · 320 阅读 · 0 评论 -
阶段三/Lambda表达式
目录什么是Lambda表达式Lambda语法格式函数式编程函数式接口PredicteJDK8常用函数式接口总结什么是Lambda表达式JDK8开始支持Lambda表达式,用来让程序编写更优雅 利用Lambda可以更简洁的实现匿名内部类与函数声明与调用 基于Lambda提供stream流式处理极大简化对集合的操作Lambda语法格式(参数列表) -> 实现语句参数列表:使用逗号分隔参数,参数类型可以省略,单参数括号可省略单行直接写,多行用{}包括,..原创 2021-04-22 21:10:34 · 178 阅读 · 0 评论 -
阶段三/Java反射
反射的核心类Class类 Constructor构造方法类 Method方法类 Field成员变量类Class类Class是JVM中代表“类和接口”的类 Class对象具体包含了某个特定类的结构信息 通过Class对象可获取对应类的构造方法/方法/成员变量Class核心方法Class.forName():静态方法,用于获取指定Class对象 classObj.newInstance():通过默认构造方法创建新的对象 classObj.getConstructor():获得...原创 2021-04-22 01:17:07 · 102 阅读 · 0 评论 -
阶段三/工厂模式
设计模式简介设计模式概念设计模式是前辈总结的设计经验 设计模式的目标是代码更容易理解更容易维护 通过设计模式可以让代码更加可靠设计模式的分类创建型模式 结构型模式 行为型模式工厂模式是创建型模式的一种 用于隐藏创建对象的细节 工厂模式核心:工厂类(Factory) 可细分为:简单工厂、工厂方法与抽象工厂简单工厂...原创 2021-04-21 16:33:52 · 301 阅读 · 0 评论 -
阶段二/Servlet
软件结构发展史单机时代-桌面应用例如office、eclipse联机时代(Client-Server模式)Client/Server结构(C/S结构)是指客户端和服务器结构 优点:数据方便共享,安全性高 缺点:必须安装客户端,升级与维护困难互联网时代(Broswer-Server模式)Broswer-Srver(B/S)模式即浏览器和服务器架构模式 优点:开发简单,无需安装客户端,数据易于共享 缺点:相较于C/S模式,执行速度与用户体验相对较弱。相关概念请求与响应 ...原创 2021-04-20 20:00:17 · 72 阅读 · 0 评论 -
阶段二/JSON入门
JSON介绍JSON语法规则JSONJavaScript Object Notation(JavaScript 对象表示法) JSON是轻量级的文本数据交换格式 独立于语言,具有自我描述性,更易理解语法规则数据由键(key)/值(value)描述,由逗号分隔 大括号代表一个完整的对象,拥有多个键/值对 中括号保存数组,多个对象之间使用逗号分隔 标准的书写格式:键和值必须用双引号包裹 在数组中,最后一个元素后面不要加括号,否则会破坏json的语法规则????{ "si原创 2021-04-19 16:58:26 · 66 阅读 · 0 评论 -
阶段二/HTML入门
HTML简介HTML:Hyper Text Markup Language,超文本 标记 语言常用标签字体标签字体标签:<font face="隶书" size="6" color="red"></font>作用:规定文本的字体,字体尺寸、字体颜色举个????<font face="隶书" size="6" color="red">这是第一个页面,哈哈哈</font>字体是隶书,大小是6(可以是1-7,最大是7,超过7一律按7显原创 2021-04-16 02:34:20 · 273 阅读 · 0 评论 -
阶段三/Maven项目管理
Maven核心特性项目设置遵循统一的规则,保证不同环境的兼容性 强大的依赖管理,项目依赖组件自动下载,自动更新 可扩展的插件机制,使用简单,功能丰富Maven是由Java编写的软件,要运行Maven必须要安装JDK或JRE。bin目录下的mvn.cmd是Maven的核心执行文件,对于Maven执行的命令必须通过它来执行。Maven项目标准结构Maven的坐标GroupId:机构或者团体的英文,采用“逆向域名”形式书写 ArtifactId:项目名称,说明其用途 Versi...原创 2021-04-14 01:17:07 · 117 阅读 · 0 评论 -
阶段一/常用工具类/Java多线程
什么是线程进程是指可执行程序并存放在计算机存储器的一个指令序列,它是一个动态执行的过程。 线程是比进程还要小的运行单位,一个进程包含多个线程,它被包含在进程之中,是进程中的实际运作单位。 线程可以看作一个子程序 CPU使用时间片轮转的工作方式,可以让多个程序轮流占用CPU,达到同时运行的效果创建线程在 Java 中,创建线程有以下 3 种方式:继承Thread类,重写run()方法,该方法代表线程要执行的任务; 实现Runnable接口,实现run()方法,该方法...原创 2021-02-22 02:13:37 · 107 阅读 · 0 评论 -
阶段一/常用工具类/Java泛型
泛型概述Java SE7及以后的版本中,构造方法中可以省略泛型类型,例如List<String> list = new ArrayList<>(); 泛型变量声明的类型必须匹配传递给实际对象的类型,例如下面这种是不可以的,Cat是Animal类的子类,但是List<Animal> list = new ArrayList<Cat>();这种是不被允许的,会报错,Error:不兼容的类型: java.util.ArrayList<com....原创 2021-02-21 19:31:40 · 277 阅读 · 0 评论 -
阶段一/常用工具类/集合排序
目录关于comparTo方法基本数据类型以integer为例Stirng 的compareTo( )方法Comparator接口Comparable接口Comparable VS ComparatorTreeSet关于comparTo方法基本数据类型的包装类和字符串都有comparTo方法,直接调用即可。基本数据类型以integer为例public int compateTo(Integer anotherInteger)对于返回值,如果调用compareT原创 2021-02-21 03:39:06 · 139 阅读 · 0 评论 -
阶段一/常用工具/集合
应用场景无法预测存储数据的数量 同时存储具有一对一关系的数据 需要进行数据的增删改查 需要解决数据重复问题,可以直接使用集合Set完成集合框架的体系结构Collection主要用于存储类的对象。Collection下有三个子接口,分别是List,Queue和Set,List和Queue中可以存储有序且重复的数据,Set中存储的数据是无序且不允许重复。List接口的主要实现类包括ArrayList和LinkedeList,LinkedList同时实现了Queue接口...原创 2021-02-19 01:50:00 · 231 阅读 · 1 评论 -
阶段一/常用工具/字符串
目录StringString的不可变性常用方法StringBuilderStringString的不可变性String 对象一旦被创建,则不能修改,是不可变的 所谓的修改其实是创建了新的对象,所指向的内存空间不变 用String操作字符串时,会产生很多中间变量,也会产生很多在常量池中废弃的数据 应用场景:如果有少量字符串操作,可以使用String String类型也有常量池的概念常用方法方法equels()比较两个字符串内容是否相等,返回值是boolean类型.原创 2021-02-18 22:59:43 · 75 阅读 · 0 评论 -
阶段一/常用工具/包装类
包装类与基本数据类型基本数据类型没有属性、没有方法,无法进行对象化交互通过包装类可以让基本数据类型拥有属性、方法,可以对象化交互包装类与基本数据类型,包装类属于引用类型,故其默认值均是nullbyte -> Byte short -> Short int -> Integer long -> Long float -> Float double -> Double char(默认值'') -> Character boolean...原创 2021-02-18 14:08:00 · 81 阅读 · 0 评论 -
阶段一/常用工具/异常
异常的简介什么是异常在程序运行过程中,意外发生的情况,背离我们程序本身的意图的表现,都可以理解为异常 当成程序在运行期间出现了异常,若置之不理,程序可能会不正常运行、强制中断运行、造成用户数据丢失、资源无法正常释放、直接导致系统崩溃。异常的分类在Java中,通过Throwable及其子类描述各种不同类型的异常Throwable Error:程序无法处理的错误,表示应用程序中较严重的问题,大多数错误与代码编写着执行的操作无关,而表示代码运行时JVM(Java虚拟机)出现的问题...原创 2021-02-15 20:02:54 · 86 阅读 · 0 评论 -
阶段一/ Java单例模式与多态/关于多态的总结1
目录一、前言:不存在继承接口时的static、final修饰的变量二、前言:不存在继承时的static、final修饰的方法三、变量/方法:继承 and 接口⚠️:重写的概念感觉是和多态绑定的,例如static关键字的不能重写,但是也是可以重新定义的,不过就没有多态现象了一、前言:不存在继承接口时的static、final修饰的变量1、单一类的对象实例化的顺序,假设类也是第一次加载‘加载所有的静态变量 加载所有的静态变量 执行静态代码块,若有多个静态代码块顺序执行 类的加载原创 2021-02-14 00:14:26 · 161 阅读 · 0 评论 -
阶段一/ Java单例模式与多态/接口&内部类
一、接口基础概念接口定义了某一批类所需要遵守的规范 接口可以实现多继承,即一个子接口可以同时继承多个父接口 一个类可以继承字一个父类,同时实现多个接口 当类实现接口时,需要实现接口中的所有的抽象方法,否则需要将该类设置为抽象类 可以用在接口的修饰符public 和 默认,例如 public interface INet 接口中抽象方法可以不写abstract关键字,方法的修饰符默认是public,而方法重写时重写方法的访问权限应该大于等于接口的访问权限细节...原创 2021-02-12 23:49:49 · 189 阅读 · 2 评论 -
阶段一/ Java单例模式与多态/Java多态
一、多态的概念多态:意味着允许不同类的对象对同一消息做出不同的响应多态的分类编译时多态(设计师多态) 方法重载 运行时多态 Java运行时系统根据调用该方法的实例的类型来决定选择调用那个方法则被称为运行时多态 必要条件 满足继承关系 父类引用指向子类对象 二、向上转型向上转型、隐式转型、自动转型 父类引用指向子类实例, 可以调用子类重写父类的方法以及父类派生的方法 子类特有的方法不能直接去调用 小类型转为大类型三、向下转型向下转型又称为强...原创 2021-02-12 03:02:41 · 161 阅读 · 0 评论 -
阶段一/Java单例模式/Java单例模式
一、单例模式的定义和作用设计模式:是软件开发人员在软件开发过程中面临的一般问题的解决方案目的使得类的一个对象成为该类系统中的唯一实例定义一个类有且仅有一个实例,并且自行实例化想整个系统提供要点某个类只能有一个实例 必须自行创建实例 必须自行向整个系统提供这个实例实现:只提供私有的构造方法(私有构造方法,类外无法通过new关键字来实例化对象) 含有一个该类的静态私有对象(static刚好可以满足有且仅有) 提供一个静态的公有方法用于创建、获取静态私有对象...原创 2021-02-11 18:25:17 · 106 阅读 · 2 评论 -
阶段一/ 面向对象之封装与继承/Java继承
一、继承的概念和特点新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性的继承父类,必须承接父类所有的可访问的特征。 Java的继承只能是单继承,子类只能继承一个父类。 子类可以访问父类非私有成员。 父类不可以访问子类特有的成员二、方法的重写方法重载 VS 方法重写方法重载同一个类 方法名相同,参数列表不同(参数顺序、个数、类型) 与方法的参数名无关 方法返回值、访问修饰符任意方法重写在子类中定义 方法名相同,方法名、参数类型、顺序、个数都...原创 2021-02-11 02:03:35 · 189 阅读 · 3 评论 -
阶段一/ 面向对象之封装与继承/Java封装
一、封装的实现封装将类的某些信息隐藏在类内部,不允许外部程序直接访问 通过该类提供的方法来实现对隐藏信息的操作和访问 隐藏对象的信息 留出访问的接口特点:只能通过规定的方法访问数据 隐藏类的实例细节,方便修改和实现 实现步骤修改属性的可见性(设为private) 创建getter/setter方法(设为public,用于属性的读写) 在getter/setter方法中加入属性控制语句(对属性值的合法性进行判断)小tips:构造函数也可以调用set...原创 2021-02-08 21:52:06 · 145 阅读 · 0 评论 -
阶段一/ 面向对象之封装与继承/Java面向对象
一、初识面向对象创建类 -> 实例化对象 -> 完成具体的程序原创 2021-02-05 22:05:50 · 108 阅读 · 0 评论 -
阶段一/ 数组与方法/Java方法
一、简介语法格式访问修饰符 返回类型 方法名(参数列表){ 方法体}方法命名规范同变量。方法不能嵌套定义。二、方法类型无参无返回值无参有返回值带参无返回值带参有返回值ps:命令行给主方法传参public class MathDemo { public static void main(String[] args){ int num1 = Integer.parseInt(args[0]); int n...原创 2021-02-04 03:31:33 · 162 阅读 · 1 评论 -
阶段一/ 数组与方法/Java数组
一.一维数组1.数组的概念a、数组声明语法格式数据类型[] 数组名;数据类型 数组名[];b、数组创建语法格式(1)先声明后创建数据类型[] 数组名;数组名 = new 数据类型[数组长度];(2)声明的同时创建数据类型[] 数组名 = new 数据类型[数组长度];局部变量没有默认值;数组是对象,有默认值。int - 0; float - 0.0, char - 'a', String - null(3)数组的初始化声明数...原创 2021-02-04 01:19:33 · 92 阅读 · 2 评论 -
阶段一/ 环境搭建与语法入门/Java选择循环结构
if VS switchif 结构判断条件是布尔类型 判断条件是一个范围switch判断条件是常量值,即表达式的值必须是常量。JDK 7.0以后表达式的值可以是基本数据类型的byte,short,int,char(不可以接浮点型),以及String类型。...原创 2021-02-02 02:47:47 · 111 阅读 · 0 评论 -
阶段一/ 环境搭建与语法入门/Java运算符
表达式表达式由运算符和操作数组成运算符算术运算符除法:分子分母都是整型,结果为整除后的结果,正数向下取整,负数向上取整。double result = 13 / 5; // 2.0result = -13 / 5; // -2.0result = 13 / -5; // -2.0result = -13 / -5; // 2.0result = 13.0 / 5; // 2.6赋值运算从右向左执行,故a=a*a=9,a+=9,a=a+9=3+9=12a +...原创 2021-02-01 02:39:04 · 213 阅读 · 0 评论 -
阶段一/ 环境搭建与语法入门/Java常量与变量
目录标识符关键字变量数据类型数据类型的字面值及变量定义数值型字面值进制字符型字面值布尔类型字面值字符串字面值局部变量存储方式类型转换自动类型转顺序强转常量标识符标识符可由字母、数字、下划线(_)和美元符($)组成 数字不能作为标识符的首字母 严格区分大小写 不能是Java关键字和保留字 标识符的命名最好能反映出其作用关键字变量变量的三个元素:变量类型、变量名、变量值变量命名规则满足标识符命名规则 符合驼峰原创 2021-02-01 02:02:57 · 85 阅读 · 0 评论 -
阶段一/ 环境搭建与语法入门/Java初识
JVM JRE JDKJVM(Java Virtual Machine)Java虚拟机,JVM是Java平台无关性实现的关键Java程序的执行过程JVM解释执行编译过程生成的字节码文件,将字节码文件转换成具体平台上的机器指令执行。JDK(Java Development Kit)Java语言的软件开发工具包,完成开发阶段java程序的编译和执行。两个主要组件:javac,编译器,将源程序转换成字节码 java,运行编译后的java程序(.class后缀的)J...原创 2021-01-31 17:08:54 · 113 阅读 · 0 评论