JAVASE
文章平均质量分 85
程序媛 泡泡
CGB每天都是新的一天,欢迎技术交流
展开
-
一起学JAVA 学习路径 知识体系
JAVA基础学习路径Java基础部分需要学习很多的内容,但是很多小伙伴不清楚自己的学习路径希望本文可以帮助到你,本文是程序媛泡泡给大家总结的链接汇总,欢迎食用因为泡泡平时比较忙,所以文章在逐步更新拓展中,可以关注后方便后续查看哦祝愿大家都能拥抱技术,扬帆起航 ????01 计算机基础知识与JAVA相关基础知识02 JAVA编程环境搭建:安装JDK与配置环境变量、Eclipse03 JAVA入门案例之HelloWorld练习与解析...原创 2021-03-31 20:28:12 · 593752 阅读 · 227 评论 -
新手小白学JAVA Set HashSet Map HashMap
1 set接口1.1 概述Set是一个不包含重复数据的CollectionSet集合中的数据是无序的(因为Set集合没有下标)Set集合中的元素不可以重复 – 常用来给数据去重1.2 Set集合的特点数据无序且数据不允许重复HashSet : 底层是哈希表,包装了HashMap,相当于向HashSet中存入数据时,会把数据作为K,存入内部的HashMap中。当然K仍然不许重复。TreeSet : 底层是TreeMap,也是红黑树的形式,便于查找数据1.3 常用方法学习Collecti原创 2021-05-20 15:40:32 · 50895 阅读 · 48 评论 -
新手小白学JAVA 泛型 Collection List Set
集合我们接下来要学习的内容是Java基础中一个很重要的部分:集合为了更好的理解集合,我们需要首先引入一个概念:泛型1 泛型1.1 概念我们可以观察一下,下面的代码中有什么元素是我们之前没见过的呢?其实就是< ? >的部分,它就是泛型泛型是(Generics)JDK1.5 的一个新特性,通常用来和集合对象一起使用泛型概念非常重要,它是程序的增强器,它是目前主流的开发方式1.2 作用那泛型有什么作用呢?我们可以把泛型理解成一个“语法糖”,本质上就是编译器为了提供更好的可读性而原创 2021-05-19 15:58:35 · 64557 阅读 · 72 评论 -
新手小白学java 编码转换流 OutputStreamWriter InputStreamReader
编码转换流字节流:针对二进制文件字符流:针对文本文件,读写容易出现乱码的现象,在读写时,最好指定编码集为UTF-81 概述编码转换流(InputStreamReader/OutputStreamWriter)主要进行编码的转换,用来解决字符流读写乱码的问题2 工具API学习OutputStreamWriter :OutputStreamWriter(OutputStream out)把传入的字节流转成字符流OutputStreamWriter(OutputStream out ,Strin原创 2021-05-18 22:28:39 · 10330 阅读 · 8 评论 -
新手小白学JAVA IO流 File 字节流 字符流
IO简介1 流Stream在学习IO流之前,我们首先需要学习的概念就是Stream流为了方便理解,我们可以把数据的读写操作抽象成数据在"管道"中流动,但需注意:1.流只能单方向流动2.输入流用来读取 → in3.输出流用来写出 → out4.数据只能从头到尾顺序的读写一次所以以程序的角度来思考,In/out 相对于程序而言的输入(读取)/输出(写出)的过程.2 IO流的继承结构在java中,根据处理的数据单位不同,可以把流分为字节流和字符流字节流 : 针对二进制文件字符流 : 针对原创 2021-05-17 22:54:08 · 70908 阅读 · 76 评论 -
新手小白学JAVA 正则表达式 包装类 自动装箱/自动拆箱 BigDecimal
1 正则表达式Regex1.1 概述正确的字符串格式规则。常用来判断用户输入的内容是否符合格式的要求,注意是严格区分大小写的。1.2 常见语法1.3 String提供了支持正则表达式的方法Matches(正则) : 当前字符串能否匹配正则表达式replaceAll(正则,子串) : 替换子串split(正则) : 拆分字符串1.4 练习:测试输入身份证号创建包: cn.tedu.api创建类: TestRegex.javapackage cn.tedu.api;impo原创 2021-05-15 22:39:25 · 38323 阅读 · 59 评论 -
一起学JAVA API Object String StringBuffer/StringBuilder
1 前言亲爱的小伙伴萌,目前我们看到的是Java基础部分的一个新的部分API,这是个啥,又能做啥呢?其实可以概括成一句话:帮助我们站在巨人的肩膀上,实现更加高效的开发,那么我们来一探究竟吧~2 什么是APIAPI(Application Programming Interface,应用程序接口)是一些预先定义的函数。目的是提供应用程序与开发人员基于某软件可以访问的一些功能集,但又无需访问源码或理解内部工作机制的细节.API是一种通用功能集,有时公司会将API作为其公共开放系统,也就是公司制定自己的原创 2021-05-15 22:37:15 · 52309 阅读 · 36 评论 -
一起学JAVA 接口 面向接口开发
接口1 接口的概念接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口原创 2021-05-13 22:09:33 · 37804 阅读 · 32 评论 -
新手小白学JAVA 抽象类
3 抽象类3.1 抽象类 Java中可以定义被abstract关键字修饰的方法,这种方法只有声明,没有方法体,叫做抽象方法.Java中可以定义被abstract关键字修饰的类,被abstract关键字修饰的类叫做抽象类如果一个类含有抽象方法,那么它一定是抽象类抽象类中的方法实现交给子类来完成3.2 抽象方法的格式权限修饰符 abstract 返回值类型 方法名(参数列表);3.3 特点1) abstract 可以修饰方法或者类2) 被abstarct修饰的类叫做抽象类,被abstract原创 2021-05-11 18:00:49 · 28838 阅读 · 23 评论 -
新手小白学JAVA 异常
目录DAY09-面向对象4 11 异常 21.1 概述 21.2 异常的继承结构 21.3 异常处理 21.4 练习1:异常测试 32 访问控制符 7TIPS:default是表示不写修饰符,默认,如果写default单词来修饰会报错 73 抽象类 73.1 抽象类 73.2 抽象方法的格式 83.3 特点 83.4 练习2:抽象类入门案例 83.5 练习3:抽象类构造函数测试 103.6 练习4:抽象类成员测试 124 拓展 154.1 程序设计: 分析老师示例—面向抽象原创 2021-05-11 17:59:34 · 28598 阅读 · 23 评论 -
新手小白学JAVA 面向对象之多态
4 多态4.1 概念多态指同一个实体同时具有多种形式它是面向对象程序设计(OOP)的一个重要特征。主要是指同一个对象,在不同时刻,代表的对象不一样,指的是对象的多种形态。好处是:可以把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,统一调用标准。水果有两种形态:水果和苹果,不关心买回来的是苹果还是西瓜,只要是水果就行class Animal{//1.定义父类Animal…eat(){syso(“吃啥都行”)}}class Cat exte原创 2021-05-11 08:42:07 · 81231 阅读 · 59 评论 -
Java入门 static final 静态/构造/局部代码块之间的关系
1 static1.1 概念是java中的一个关键字用于修饰成员(成员变量和成员方法)1.2 特点可以修饰成员变量与成员方法随着类的加载而加载,优先于对象加载只加载一次,就会一直存在,不再开辟新空间, 直到类消失才一起消失静态资源也叫做类资源,全局唯一,被全局所有对象共享可以直接被类名调用静态只能调用静态,非静态可以随意调用static不能和this或者super共用,因为有static时可能还没有对象1.3 练习1:static入门案例创建Java原创 2021-05-10 13:52:35 · 32755 阅读 · 33 评论 -
一起学JAVA 继承 super
1 继承1.1概念继承是面向对象最显著的一个特征继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并扩展新的能力.Java继承是会用已存在的类的定义作为基础建立新类的技术新类的定义可以增加新的数据或者新的功能,也可以使用父类的功能,但不能选择性的继承父类(超类/基类)这种继承使得复用以前的代码非常容易,能够大大的缩短开发的周期,降低开发费用.1.2 特点使用extends关键字来表示继承关系相当于子类把父类的功能复制了一份Java只支持单继承继承可以传递(爷爷/儿子原创 2021-05-10 09:55:44 · 45007 阅读 · 52 评论 -
新手小白学JAVA 面向对象2 构造函数 构造代码块 this
1 构造方法1.1 概念构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法构方法的主要功能就是完成对象创建或者初始化当类创建对象(实例化)时,就会自动调用构造方法构造方法与普通方法一样也可以重载.1.2 形式与类同名,且没有返回值类型,可以含参也可以不含参1.3 练习:构造方法创建对象/构造方法赋值创建包: cn.tedu.oop创建类: TestConstructor.javapackage cn.tedu.oop;/**本类用于测试构造方法*/public c原创 2021-05-10 08:49:53 · 42623 阅读 · 18 评论 -
JAVA 面向对象 类 对象 封装
面向对象概念面向对象其实是一种编程思想,通过它可以把生活中复杂的事情变得简单化,从原来的执行者变成了指挥者。面向对象是基于面向过程而言的。面向过程强调的是过程,比如:打开冰箱门 2. 把大象放进去 3. 关上冰箱门面向对象强调的是结果,比如:什么样的冰箱?什么样的大象?谁负责把大象装进去? 而不是关注那个负责的人怎么把大象装冰箱里.衣服脏了,直接让女盆友去处理,等着穿干净的就可以了。你不关注中间的过程,只要找好对象就可以了~再比如.我们想吃一道菜,无需考虑是怎么传菜,怎么做菜的,只需点菜即原创 2021-05-07 17:57:12 · 66797 阅读 · 63 评论 -
新手小白学JAVA 冒泡排序
3 冒泡排序bubble3.1 概念冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。3.2 形式相邻比较,从小到大原创 2021-05-06 14:52:30 · 31017 阅读 · 25 评论 -
新手小白学JAVA 数组 数组工具类 二维数组
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 = new原创 2021-04-02 08:41:06 · 64944 阅读 · 23 评论 -
一起学JAVA 方法 局部变量 成员变量
1 变量1.1 概念可以改变的数,称为变量。在Java语言中,所有的变量在使用前必须声明。一般通过“变量类型 变量名 = 变量值 ;”这三部分来描述一个变量。如:int a = 3 ;变量的使用原则:就近原则,即尽量控制变量的使用范围到最小2.2 局部变量位置:定义在方法里或者局部代码块中注意:必须手动初始化来分配内存.如:int i = 5;或者int i; i = 5;作用域:也就是方法里或者局部代码块中,方法运行完内存就释放了2.3 成员变量位置:定义在类里方法外注意:不用原创 2021-04-02 00:11:57 · 50617 阅读 · 39 评论 -
新手小白学JAVA 嵌套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 class Te原创 2021-04-01 23:56:36 · 41730 阅读 · 12 评论 -
新手小白学JAVA 分支结构 switch结构 for循环
分支结构switch原创 2021-04-01 22:32:53 · 47668 阅读 · 22 评论 -
一起学JAVA 初识JAVA运算符
1 运算符1.1 概述运算符 用于连接 表达式 的 操作数,并对操作数执行运算。例如,表达式num1+num2,其操作数是num1和num2,运算符是”+”。在java语言中,运算符可分为5种类型:算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符。根据操作数的不同,运算符又分为单目运算符、双目运算符和三目运算符。单目运算符只有一个操作数,双目运算符有两个操作数,三目运算符则有三个操作数。位运算符涉及到二进制位的运算,在java 程序中运用不是很多。1.2 运算符速查表1.3 练原创 2021-03-31 21:52:33 · 51980 阅读 · 37 评论 -
JAVA语法基础 标识符 关键字 注释 变量 数据类型与类型转换
1 JAVA语法基础1.1 标识符标识符可以简单的理解成一个名字。在Java中,我们需要标识代码的很多元素,包括类名、方法、字段、变量、包名等等。我们选择的那个名称就称为标识符,一个正确的标识符需要遵循以下规则:1. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符2. 不能以数字开头。如:123name 就是不合法3. 标识符严格区分大小写。如: tmooc 和 tMooc 是两个不同的标识符4. 标识符的命名最好能反映出其作用,做到见名知意。原创 2021-03-31 21:06:59 · 81867 阅读 · 45 评论 -
新手小白入门编程第3讲 JAVA入门案例
1 HelloWorld案例1.1 工作空间设置工作空间就是一个文件夹,用来保存我们所有的开发文件和代码等等.工作空间也是可以切换的,但是切换了工作空间,我们对于eclipse的设置就重置了.后续我们自己写的代码可以去这个位置找到.可以如下图,选择工作空间的存放目录1.2 eclipse设置java视图设置JAVA视图是为了开发时更加方便2 完成第一个Java案例HelloWorld2.1 创建java工程day012.2 创建包cn.tedu.hello2.3 创建类Hell原创 2021-03-31 11:19:26 · 41286 阅读 · 26 评论 -
新手小白入门编程第2讲 JAVA编程环境搭建 JDK与环境变量、Eclipse
1 JDK1.1 JDK概述JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了:JAVA开发工具(jdk\bin)基础开发库(jdk\jre\lib\rt.jar)基础开发库的源码(jdk\src.zip)1.2 JDK下载与安装本次使用的是JDK1.8,详细安装步骤可以参见”JDK培优安装手册”.注意事项:同时安装多个JDK时需要使用执行环境变量来确认使用的是哪个jdk安装时选择默认选项安装到默认原创 2021-03-31 10:58:31 · 42749 阅读 · 11 评论 -
新手小白入门编程第1讲 计算机基础知识 JAVA基础知识
1 计算机基础知识1.1计算机计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行,自动、高速处理数据的现代化智能电子设备。常见的形式有台式计算机、笔记本计算机。按照规模分为微型机、小型机、大型机、巨型机(超级计算机)等。计算机发明者约翰•冯•诺依曼。计算机是20世纪最先进的科学技术发明之一,对人类的生产活动和社会活动产生了极其重要的影响,并以强大的生命力飞速发展。它的应用领域从最初的军事科研应用扩展到社会的各个领域,已形成了规模巨大的计算机产业,带动了全球范围的技术进步,由此原创 2021-03-31 10:32:36 · 70316 阅读 · 38 评论 -
Socket网络编程
Socket1 环境查看通过cmd窗口的命令:ipconfig查看本机IP地址查看网络情况是否正常:ping百度官网用来进行本地测试的地址 127.0.0.1,回环测试地址,默认代表的就是本机的IP2 Socket概述socket编程也叫套接字编程,应用程序可以通过它发送或者接受数据,可对其像打开文件一样打开/关闭/读写等操作.套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信.网络套接字是IP地址与端口号TCP协议的组合Socket就是为网络编程提供的一原创 2021-03-22 13:55:30 · 31686 阅读 · 42 评论 -
初识JAVA内部类
1 内部类概述如果一个类存在的意义就是为指定的另一个类,可以把这个类放入另一个类的内部。就是把类定义在类的内部的情况就可以形成内部类的形式。A类中又定义了B类,B类就是内部类,B类可以当做A类的一个成员看待:2 特点1) 内部类可以直接访问外部类中的成员,包括私有成员2) 外部类要访问内部类的成员,必须要建立内部类的对象3) 在成员位置的内部类是成员内部类4) 在局部位置的内部类是局部内部类3 练习 : 内部类入门案例创建包: cn.tedu.innerclass创建类原创 2021-03-21 22:46:57 · 30626 阅读 · 63 评论 -
一起学JAVA 反射学习(超详细)
1 什么是反射?Reflection(反射) 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,也有称作“自省”。反射非常强大,它甚至能直接操作程序的私有属性。我们前面学习都有一个概念,被private封装的资源只能类内部访问,外部是不行的,但这个规定被反射赤裸裸的打破了。反射就像一面镜子,它可以在运行时获取一个类的所有信息,可以获取到任何定义的信息(包括成员变量,成员方法,构造器等),并且可以操纵类的字段、方法、构造器等部分。2 为什么需要反射?原创 2021-03-21 22:15:16 · 57768 阅读 · 86 评论 -
注解与自定义注解
1 注解注解很厉害,它可以增强我们的java代码,同时利用反射技术可以扩充实现很多功能。它们被广泛应用于三大框架底层。传统我们通过xml文本文件声明方式(如下图,但是XML比较繁琐且不易检查),而现在最主流的开发都是基于注解方式,代码量少,框架可以根据注解去自动生成很多代码,从而减少代码量,程序更易读。例如最火爆的SpringBoot就完全基于注解技术实现。注解设计非常精巧,初学时觉得很另类甚至多余,甚至垃圾。有了java代码干嘛还要有@注解呢?但熟练之后你会赞叹,它竟然可以超越java代码的功能,原创 2021-03-21 21:35:11 · 31645 阅读 · 47 评论 -
同步锁-线程安全问题解决方案
1 同步锁1.1 前言经过前面多线程编程的学习,我们遇到了线程安全的相关问题,比如多线程售票情景下的超卖/重卖现象.上节笔记点这里-进程与线程笔记我们如何判断程序有没有可能出现线程安全问题,主要有以下三个条件:在多线程程序中 + 有共享数据 + 多条语句操作共享数据多线程的场景和共享数据的条件是改变不了的(就像4个窗口一起卖100张票,这个是业务)所以思路可以从第3点"多条语句操作共享数据"入手,既然是在这多条语句操作数据过程中出现了问题那我们可以把有可能出现问题的代码都包裹起来,一次只让一原创 2021-03-21 17:18:50 · 50720 阅读 · 83 评论 -
新手小白学JAVA 初识序列化与反序列化
序列化/反序列化1.1 概述序列化(Serialization)是将对象的状态信息转换为可以存储或传输形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后可以通过从存储区中读取或者帆序列化对象的状态,重新创建该对象.序列化:利用ObjectOutputStream,把对象的信息,按照固定的格式转成一串字节值输出并持久保存到磁盘反序列化:利用ObjectInputStream,读取磁盘中之前序列化好的数据,重新恢复成对象TIPS: 序列化: 对象 字节值 反序列化:原创 2021-03-18 19:37:00 · 33122 阅读 · 36 评论 -
进程与线程
进程与线程1 进程1.1 进程的概念进程就是正在运行的程序,它代表了程序所占用的内存区域1.2 进程的特点独立性进程是系统中独立存在的实体,它可以拥有自己独立的资源,每个进程都拥有自己私有的地址空间,在没有经过进程本身允许的情况下,一个用户进程不可以直接访问其他进程的地址空间动态性进程与程序的区别在于,程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合,程序加入了时间的概念以后,称为进程,具有自己的生命周期和各种不同的状态,这些概念都是程序所不具备的.并发性多个进程可以在原创 2021-03-18 00:01:34 · 84620 阅读 · 88 评论