Java
文章平均质量分 74
从零开始,我们一起学Java。
鲁伯特之泪ღ
这个作者很懒,什么都没留下…
展开
-
Java1.8新特性
1 .Lambdalambda表达式是一种没有名字的函数,也可以称为闭包本质就是一个匿名内部类,还有叫箭头函数。把方法作为一个参数,进行传递Lambda 表达式:在Java 8 语言中引入的一种新的语法元素和操作符。这个操作符为“->” ,该操作符被称为Lambda 操作符或箭头操作符。它将Lambda 分为两个部分:左侧:指定了Lambda 表达式需要的参数列表右侧:指定了Lambda 体,是抽象方法的实现逻辑,也即Lambda 表达式要执行的功能。2. 函数式接口本质就是一个只有一原创 2021-02-02 23:33:31 · 166 阅读 · 0 评论 -
正则表达式
正则表达式正则表达式,定义了字符串的模式,可以用来搜索,编辑或处理文本,并不仅限于某一种语言 在任何语言中都有,但是有细微的差别java中在1.4推出java.util.regex包,为我们提供了java使用正则表达式的应用平台在java中使用正则表达式中的 \ 的时候 需要使用 两个 \元字符 描述\ 将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\n”匹配\n。“\n”匹配换行符。序列“\”匹配“\”而“(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。^原创 2021-02-01 23:06:41 · 148 阅读 · 0 评论 -
网络编程知识汇总
1. 网络编程知识汇总Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序。Java提供的网络类库,可以实现无痛的网络连接,联网的底层 细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一 的网络编程环境。计算机网络:把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规 模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、 共享硬件原创 2021-02-01 23:05:19 · 175 阅读 · 0 评论 -
计算机运算法则,float与double的区别?
package _02Operation;public class _Test {public static void main(String[] args) { // 低精度向高精度自动类型转换 double x = 0.3; System.out.println("x的值为:"+x); System.out.println("x等于0.3吗?:"+(x==0.3)); System.out.println("x大于0.3吗?:"+(x>0.3)); System.ou原创 2021-01-31 21:46:48 · 548 阅读 · 0 评论 -
多线程(补充)
多线程1.1 线程守护守护线程 又叫兜底线程每个程序运行当中,都会默认开启一个守护线程,用于监听我们正常的程序简单来说,就是没有任何一个线程的时候,JVM就需要退出了,这个时候守护线程也会退出,主要完成垃圾回收等功能但是,我们可以使用Thread.setDameon() 方法 把某个线程设置为守护线程但是必须在启动 static之前,否则报错1.2 Timer定时器 计划任务,只要有一个任务监听 就会是一个线程1 执行任务的类 , 2 执行任务起始时间 3 执行任务间隔时间1.3 死锁原创 2021-01-30 11:22:10 · 115 阅读 · 0 评论 -
多线程,同步机制,锁
多线程1. 多线程1.1 基本概念:程序、进程、线程程序(program)是为完成特定任务、用某种语言编写的一组指令的集合一段静态的代码,静态对象。进程(process)是程序的一次执行过程,或是正在运行的一个程序一个动态的过程:有它自身的产生、存在和消亡的过程。——生命周期线程(thread),进程可进一步细化为线程,是一个程序内部的一条执行路径。线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(pc)1.2 单核CPU和多核CPU的理解a) 单核CPU,其实是一种假的多原创 2021-01-29 01:38:50 · 247 阅读 · 0 评论 -
IO流
1. 数据流1.1 概述为了方便地操作Java语言的基本数据类型和String的数据,可以使用数据流。数据流有两个类:(用于读取和写出基本数据类型、String类的数据)DataOutputStream按照一定的格式输出,再通过DataInputStream以一定格式读入。由于可以得到java的各种基本类型甚至字符串,常用于网络通信。DataInputStream中的方法boolean readBoolean()char readChar()double readDouble()long原创 2021-01-28 00:49:02 · 82 阅读 · 0 评论 -
IO流
1. 概述流是一组有顺序的,有起点,有重点的字节集合流的本质 就是数据的传输,根据不同的数据传输特性,抽象出各种类,方便我们直接操作数据设备之间的数据传递称为流流中的操作对象是指内存中,当前操作的程序而言输入 : 指往内存中导入数据输出 : 指从内存中写出数据2. 分类按处理数据类型的不同,分为字节流和字符流按数据流向的不同,分为输入流和输出流。(入和出是相对于内存来讲的)按功能不同,分为节点流和处理流节点流:直接操作数据源3. 四大抽象类InputStream 字节输入Out原创 2021-01-26 20:27:32 · 144 阅读 · 1 评论 -
集合补充,Map,散列
1. 集合补充/1.1treeSet添加的元素必须排序两种方式 :1 要添加的元素对应的类实现java.lang.Comparable接口,并实现compareTo方法2 使用java.util.Comparator比较器类如果要添加的元素符合两种比较器,则 Comparator优先(compare方法)Comparable : 要添加的元素 实现该接口并覆写compareTo方法Comparator : 比较器类 常应用比如Integer默认升序;我想降序怎么办? 使用Comparat原创 2021-01-25 00:55:48 · 184 阅读 · 1 评论 -
异常机制
异常机制常见的异常1 空指针异常2 下标越界3 类型转换异常4 栈内存溢出异常的概述一种识别及响应错误情况的一致性机制。有效地异常处理能使程序更加健壮、易于调试。发生异常的原因: 1)用户输入了非法数据2)要打开的文件不存在3)网络通信时连接中断4)JVM内存溢出 5)这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。异常机制异常就是错误的另一种说法,在java中有一个专门模拟所有异常和错误的类(Throwable),所有原创 2021-01-25 00:53:41 · 134 阅读 · 0 评论 -
集合
集合1. Collection1.1 概述通过继承体系发现,集合中两大分类,List和Set 并且 两个都继承了Collection那也就意味着,Collection中的方法是List和Set都有的,所以我们先讲Collection,看看它里面都有什么方法Collection 集合 只能存储单个元素,并且只能保存引用数据类型,不能保存基本数据类型因为 底层就是 Object[] 数组,既然是Object 所以 即可以说 只能保存Object单一元素,也可以说可以保存任何元素,因为Obje原创 2021-01-25 00:51:28 · 108 阅读 · 0 评论 -
异常机制
异常机制常见的异常1 空指针异常2 下标越界3 类型转换异常4 栈内存溢出2. 异常的概述一种识别及响应错误情况的一致性机制。有效地异常处理能使程序更加健壮、易于调试。发生异常的原因: 1)用户输入了非法数据 2)要打开的文件不存在 3)网络通信时连接中断 4)JVM内存溢出 5)这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。3. 异常机制异常就是错误的另一种说法,在java中有一个专门模拟所有异常和错误的原创 2021-01-22 02:40:33 · 143 阅读 · 0 评论 -
API:String、integer
字符串java.lang.String :字符串类,并且该类加final修饰;底层就是char数组 private final char value [];所以字符串有很多的特性就是数组的特性# 1.字符串一旦创建不能更改;2.为了提升字符串的访问效率,java中提出了字符串常量池,相当于一个缓存区;引用类型对象应该保存在堆内存,但字符串不同,保存在字符串常量池中;3.在程序的执行过程中,如果程序要用到某个字符串;虚拟机会先前常量池中搜索,是否存在这个字符串;如果有就直接指向改字符串,如果没原创 2021-01-21 00:04:46 · 133 阅读 · 4 评论 -
内部类、设计模式
局部内部类等同于局部变量注意:局部内部类在访问外部方法中的局部变量的时候,需要加final修饰;从1.8开始final可以省略,但是final的作用仍然存在局部内部类中,不能有静态声明;如果是成员方法中的局部内部类,可以访问外部类的所有属性;如果是静态方法中局部内部类,不可以直接访问外部类的成员属性;匿名内部类 指在方法调用时,实参需要传入某个接口对象的时候,不传入对象,传入一个匿名的实现类; 如果方法定义形参 一般是个接口,那么调用的时候,就需要传入其实现类的对象 但是可以不是实现这个原创 2021-01-19 23:40:31 · 110 阅读 · 0 评论 -
java中Object类、内部类、类与类之间的关系
Object类是java中的根类(祖类);所以的类都会继承Object类,空类也会继承;因此Object中的方法是所有类都能有的功能;Object xxx = new xxx(); Object是可以发生多态的;由于可以发生多态,如果一个方法需要传递数据,我们不确定数据类型时,可以写Object;如何学习一个方法? 1.该方法是谁的? 2.是什么方法?(成员还是静态) 3.方法的功能是什么?入参出参是什么?能实现什么,我们需要给它什么,它能给我们提供什么; 4.原创 2021-01-19 00:20:06 · 271 阅读 · 0 评论 -
多态、抽象、接口
多态知识回顾:jvm特性:跨平台,多线程,面向对象,自动垃圾回收机制面向对象特性:封装性,继承性,动态性(多态),抽象变量的声明: 数据类型 变量名 = 值;变量的分类:局部变量;方法内部声明的变量、也可以是参数列表声明的对象;静态变量;使用static修饰的变量;成员变量;没有使用static修饰的变量;多态相关的知识点:软件设计六大原则;①里氏替换原则:能够使用父类的地方就一定可以使用子类;②单一职责原则:功能单一,只拥抱一种变化;③依赖倒置原则:高层通过抽象依赖底层;④接口隔离原创 2021-01-17 17:04:33 · 120 阅读 · 0 评论 -
继承、super、final、覆写
关于继承,java中仅支持单继承,可以是多重继承; 即为一个类仅能有一个父类;什么是继承? 继承可以提升代码的复用性(目的),父类的功能,子类可以直接使用; 使子类的功能更加强大; java中用extends关键字表示继承; 语法:public class 类名 extends 父类名{类体}注意:私有化属性,不能被继承;一个类如果没有显示继承另外一个类的话,该类默认继承Object; java.lang.Object是java中原创 2021-01-15 02:54:38 · 202 阅读 · 2 评论 -
封装、static、this、包机制
构造方法: 声明: [权限修饰符] 方法名 (参数) {方法体} (方法名必须同类名一致) 作用: 创建对象,初始化成员属性方法声明:[修饰符列表] 返回值类型 方法名 (参数列表) {方法体}注意事项:方法声明五部分构成,需注明返回值类型,无返回值写void;构造方法声明四部分构成,构造方法没有返回值,便无返回值类型这一项,也不用写void;问题:成员方法和构造方法可以同名吗?相当于 成员方法和类名可原创 2021-01-14 03:19:08 · 175 阅读 · 0 评论 -
面向对象
1. 面向对象扁平化管理(小企业)与层级化管理(大企业)面向对象注重的是分类,分模块;面向过程侧重于过程;2. 功能与调用通常分开写客户端:调用别人的;类库端:被调用的;静态方法的调用:调用当前类中的静态方法,编译器会自动的加上类名,且创建公共的无参构造;成员方法的调用:对象引用.成员方法名;3. 构造方法创建对象,初始化对象;作用:创建当前类的实例化对象,初始化成员属性;4. 静态变量初始化发生在类的加载阶段(main方法执行之前);5. 成员变量初始化发生在调用构造方法若不原创 2021-01-12 22:37:30 · 74 阅读 · 0 评论 -
排序
(一)冒泡排序 : 1 比较相邻的两个元素,如果第一个比第二大,就交换位置 2 对每一对相邻的元素做同样的工作,从开始一对到最后一对,当一轮比较完之后,最后的元素,一定是最大的(最小的) 3 针对所有的元素,重复执行上面操作,除最后一个元素 4 持续每次需要比较的队伍越来越少,一直到没有任何一对需要比较,终止1 嵌套循环2 内层循环取决于外层循环3 需要一个中间变量(二)选择排序 1 每次都把最小的/最大的放到最左边 先拿出第一个,假设是最小的,然后挨个和后面的比较,全部比较完之后原创 2021-01-11 20:46:55 · 127 阅读 · 1 评论 -
数组
1. 数组的概念一个源自底层的数据结构,可以看成是多个相同类型数据的组合,实现对这些数据的统一管理。又称为 索引数组(index)。2. 数据结构的概念数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。3. 数组的特性1.数组在内存中是连续的内存空间,也就意味着,找到一个就能找到其他所有2.数组中元素的类型必须一致,意味着空间大小一致3.偏原创 2021-01-10 10:43:49 · 131 阅读 · 0 评论 -
递归
递归的定义在方法体中 调用当前方法递归的基本思想以此类推是递归的基本思想也是循环的基本思想 所以递归和迭代是等价的(迭代就是循环)区别:循环是重复执行循环体,而递归是重复执行方法体递归的应用场景一般树状结构的都可以使用递归查询比如 文件目录,因为不清楚到底有多少子目录,所以没办法使用for循环嵌套常见问题 :累加加和、阶乘、斐波那契数列、汉诺塔、文件目录操作...原创 2021-01-04 20:34:36 · 108 阅读 · 0 评论 -
Method
关于Method的知识点总结使用方法的目的:代码重用,相同的操作直接调用方法就可以,不必重复写代码什么是方法:有名字的代码块。一个大括号{ } 就是一个代码块/语句块/代码段函数,方法等说法的正确叫法。Java中只有方法,C语言中只有函数,C++中,写在类中的叫方法,写在类外的叫函数面向对象的语言中,只有方法;面向过程的语言中,只有函数;函数是可以直接调用的,不需要二次引用程序:可执行文件,静态概念,一般保存在硬盘中进程 : 正在执行的程序,是个动态概念,会把指定的程序原创 2021-01-03 22:06:52 · 200 阅读 · 0 评论 -
变量 运算符 流程控制
1.数据类型 : 基本数据类型和引用数据类型基本数据类型:数值型、整数型(byte、short、int、long)、浮点型(float、double)、字符型(char)、布尔型(boolean)。引用数据类型:类、数组、接口2.类型转换 1.八种基本数据类型,除了Boolean以外,都可以进行转换 2.低精度向高精度是自动转换 3.高精度向低精度是强制转换 自动类型转换 byte-->short-->int-->long-->float-->double原创 2021-01-01 20:05:22 · 115 阅读 · 0 评论 -
Eclipse常规设置与软件使用
Eclipse常规设置与软件使用Workspace工作空间创建一个workspace文件夹,此后写的项目都会存储在这个工作空间中。自动构建 Build Automatically勾选这个此选项,我们在写代码时,每次保存都会将所有的代码自动编译,即生成class文件。改变字符编码更改字体根据个人需求调整字体、字形、大小,点击确定即可。5. 创建第一个项目。我们刚刚创建的项目。创建类点击 Finish,完成创建。编写代码右击空白处,原创 2020-12-31 19:28:35 · 146 阅读 · 0 评论 -
Java安装与环境搭建
Java安装与环境搭建Java安装与环境搭建文件提取Java安装与环境搭建第一步 检查计算机是否存在Java环境,如果之前安装过java要卸载干净。第二步 在自己想要安装Java的地方创建java文件夹,并在文件夹内部分别创建jdk和jre文件夹。第三步 双击运行安装jdk和jre。安装过程如下jdk安装完成会,自动弹窗安装jre。点击关闭完成安装。5. 第四步 配置系统环境变量右键点击 此电脑 属性点击高级系统设置点击环境变量注意选择的是系统变原创 2020-12-31 18:51:34 · 149 阅读 · 0 评论 -
Java入门基础知识点总结
Java入门基础知识点总结1. 计算机语言的发展2. Java历史3.Java特性4.JVM的四大特性5.什么是动态语言?什么是静态语言?6.什么是强类型语言?什么是弱类型语言?7.什么是编译型语言?什么是解释型语言?8.为什么说Java是准动态的?9.Java的开发规范10.Java的运行机制11.命名规则12.推荐安装的文本软件1. 计算机语言的发展机器语言,汇编语言,高级语言(C/C++,Java等)2. Java历史1991年oak(Java前身)1995年5月改为Java推出Java之原创 2020-12-31 18:11:31 · 484 阅读 · 0 评论