
Java程序开发
Ace_bb
这个作者很懒,什么都没留下…
展开
-
Java实现递归的简单讲解。及通过递归搜索文件路径的实现,过滤器的实现,lambda简化
第二章 递归2.1 概述递归:指在当前方法内调用自己的这种现象。递归的分类:递归分为两种,直接递归和间接递归。直接递归称为方法自身调用自己。间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。注意事项:递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。构造方法,禁止递归public class Demo01DiGui { public static void m原创 2020-11-26 20:56:14 · 335 阅读 · 0 评论 -
Java File类详解 构造方法 常用方法 绝对路径和相对路径 创建一个文件 文件夹
File类第一章 File类1.1 概述java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。java把电脑中的文件和文件夹(目录)封装为了一个File类,我们可以使用File类对文件和文件夹进行操作我们可以使用File类的方法创建一个文件/文件夹删除文件/文件夹获取文件/文件夹判断文件/文件夹是否存在对文件夹进行遍历获取文件的大小File类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法重点:记住这三个单词 fi原创 2020-11-26 20:26:45 · 2390 阅读 · 0 评论 -
Java 语言学习——抽象类的使用
Java学习抽象类抽象类是一种只可以被继承,但不可以实例化对象的类。用来定义一些子类中通用的方法。例如定义一个Person类为抽象类。其中保存名字。他的子类为Employee和Student。代码如下:Person类代码:public abstract class Person { public abstract String getDescription(); private String name; public Person(String name){原创 2020-07-29 11:13:37 · 276 阅读 · 0 评论 -
Java语言的强制类型转换
类型转换我们将一个类型转换成另一个类型的过程称为类型转换。在基本数据类型之间的转换如下,例如将double类型转换成int类型时就需要用到强制类型转换。即高精度向低精度转换时。 double x=10.555; int y=(int)x;类对象引用之间的类型转换有时候我们需要将一个类的对象引用转换成另一个类的对象引用,此时也需要用到强制类型转换。语法格式与上面相同。 Manager bo=(Manager)staff[0];在Java中可以将一个原创 2020-07-29 00:20:54 · 549 阅读 · 0 评论 -
Java语言学习总结——基础篇——大数值的表示
Java语言学习大数值在实际编程中经常遇到整数和浮点数精度不能满足需求的情况,比如要表示一个很大的数,或者表示一个精度非常高的数,可以使用java.math包中的BigInteger和BigDecimal两个类,这两个类可以处理任意长度的数字。定义格式: BigInteger a = BigInteger.valueOf(1234567890); BigDecimal b = BigDecimal.valueOf(1.234567891111111);初始化时valueOf只能传递不大于1原创 2020-05-23 12:10:24 · 802 阅读 · 0 评论 -
Java语言学习总结 扩展篇 Lambda函数的使用
Lambda函数定义Lambda表达式的标准格式:由三部分一些参数一个箭头一段代码组成:格式:(参数列表) -> {一 些重写方法的代码};解释说明格式:():接口中抽象方法的参数列表,没有参数,就空着;有参数就写出参数,多个参数使用逗号分隔->:传递的意思,把参数传递给方法体{}{}:重写接口的抽象方法示例代码: //使用Lambda的格式实现一个多线程 ...原创 2020-02-06 12:57:33 · 264 阅读 · 0 评论 -
Java语言学习总结 扩展篇 线程等待唤醒示例,一个线程进入wait()状态,等另一线程运行结束后notify()
线程等待唤醒示例用wait()和 notify()方法public class WaitNotifyClass { public static void main(String[] args) { // 创建锁对象 保证唯一 Object obj = new Object(); //创建一个顾客对象,作为一个线程运行 new Thread() { @Override...原创 2020-02-05 14:07:07 · 328 阅读 · 0 评论 -
Java语言学习总结 扩展篇 线程安全问题的出现及解决办法
线程安全当多个线程同时分别执行同一个线程时,可能出现安全问题。比如电影院三个售票窗口,同时开始售同样的100张票,就可能出现两个窗口同时售同一张票,或者某个窗口售卖不存在的票的问题。代码示例:public class ThreadSafeClass implements Runnable{ public int ticket=100; @Override public void ru...原创 2020-02-05 13:37:29 · 237 阅读 · 0 评论 -
Java语言学习总结 扩展篇 创建多线程的第二种方法,使用Runnable包,重写run方法
创建多线程步骤如下:定义一个Runnable接口的实现类,并重写接口中的run()方法,该run()方法的方法体同样是该线程的线程执行体。创建Runnable实现类的实例,并且以此实例为Thrad的target来创建Thread对象,该Thread对象才是真正的线程对象。调用线程对象start()方法来启动线程。Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现。类...原创 2020-02-05 13:02:32 · 875 阅读 · 0 评论 -
Java语言学习总结 扩展篇 多线程的概念及使用
多线程多线程就是同时进行多个任务,比如同时听歌同时打游戏。并发与并行并发:两个或多个事件在同一时间段内发生。即两个或多个事件在CPU中交替进行。并行: 两个或多个事件在同一时间内统统是发生,即两个或多个事件在CPU中同时执行。线程和进程●进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本...原创 2020-02-04 14:56:23 · 213 阅读 · 0 评论 -
Java语言学习总结 扩展篇 Map集合的概述及其使用
Map集合概述Map<K,V>是一个接口,K为此映射所维护的键的类型V为映射值的类型public interface Map<K,V> 将键映射到值的对象。一个映射不能包含重复的键(K不允许重复);每个键最多只能映射到一个值。Map接口定义了双列集合的规范,每次存储一对元素Collections元素是孤立存在的,向集合中存储元素只能一个一个存。Map集合中每对...原创 2020-02-03 18:51:33 · 311 阅读 · 0 评论 -
Java语言学习总结 扩展篇 Collections集合工具类的方法使用
Collections集合工具类addAll()方法直接看代码:import java.util.ArrayList;import java.util.Collections;public class CollectionsClass { public static void main(String[] args) { ArrayList<String> list =...原创 2020-02-02 16:05:02 · 231 阅读 · 0 评论 -
Java语言学习总结 扩展篇 可变参数的介绍及使用
可变参数介绍当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数。使用格式修饰符 返回值类型 方法名 (数据类型 … 变量名) {}可变参数的原理可变参数的底层原理就是数组,根据传递参数个数不同,会创建不同长度的数组,来存储参数,可以是0个也可以是多个 实例代码:public class CanShuClass { //定义一个方法求n个参数的和 pub...原创 2020-02-02 15:12:15 · 308 阅读 · 0 评论 -
Java语言学习总结 扩展篇 HashSet集合介绍及使用
HashSetSet & HashSetSet接口的特点不允许存储重复的元素没有索引,没有带索引的方法,也不能使用普通的for循环遍历,用迭代器遍历和增强for循环HashSet接口的特点也不允许存储重复的元素没有索引,没有带索引的方法,也不能使用普通的for循环遍历是一个无序的集合,存储元素和取出元素的顺序有可能不一致底层是一个哈希表的结构(查询速度非常快)...原创 2020-02-02 14:25:29 · 238 阅读 · 0 评论 -
Java语言学习总结 扩展篇 List接口之LinkedList链表的使用
LinkedList链表List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。有大量用来操作链表首尾元素的方法。API中方法如下:LinkedList集合的特点...原创 2020-02-01 14:27:13 · 336 阅读 · 0 评论 -
Java语言学习总结 扩展篇 List集合介绍及其常用方法
List集合介绍java.util.List接口继承自collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合。在List集合 中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外, List集合还有一个特 点就是元素有序,即元素的存入顺序和取出顺序一致。List接口的特点;有序 存储和...原创 2020-02-01 13:57:30 · 273 阅读 · 0 评论 -
Java语言学习总结 扩展篇 泛型的概念定义及使用
泛型泛型的概念泛型是一种未知的数据类型,是在定义某些类时,我们不知道使用什么数据类型时,就可以用泛型。然后在创建对象时,确定泛型的数据类型。泛型也可以看出是一个变量,用来接受数据类型例如ArrayList在定义的时候不知道集合中都会存储什么类型的数据,所以类型使用泛型。E:未知的数据类型例如有如下ArrayList类,定义时用泛型public class ArrayList{pub...原创 2020-01-31 19:18:21 · 193 阅读 · 0 评论 -
Java语言学习 扩展篇 增强for循环
增强for循环增强for循环(也称for each循环)是JDK1.5以后出来的一个高级for循环 ,专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。所有的单列集合都可以使用增强for循环格式:for(集合/数组的数据类型 变量名: 集合名/数组名){}示例代码:import java.util.ArrayLi...原创 2020-01-31 16:33:46 · 308 阅读 · 0 评论 -
Java语言学习总结 扩展篇 Iterator迭代器
Iterator迭代器在程序开发中,经常需要遍历集合中的所有元素。针对这种需求, JDK专门提供了一个接口java.util.Iterator。Iterator 接口也是Java集合中的一员,但它与collection、Map 接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历) Collection 中的元素,因此Iterator对...原创 2020-01-31 16:21:48 · 199 阅读 · 0 评论 -
Java语言学习总结 扩展篇 Collection常用功能介绍
Collection 常用功能Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。方法如下:●public boolean add(E e) :把给定的对象添加到当前集合中。●public void clear() :清空集合中所有的元素。●public boolean remove(...原创 2020-01-31 15:52:48 · 143 阅读 · 0 评论 -
Java语言学习总结 高级篇继承的概念及其使用
继承Java的面向对象有三大特性:封装性,继承性,多态性,继承是多态的前提,没有继承就没有多态。继承就是将几个类共有的属性,抽象成一个类,在定义新的类时,可以直接继承调用共有的变量或方法。省去重复定义相同代码的麻烦继承关系的特点是:子类可以拥有负类的“内容”子类还可以拥有自己专有的内容父类叫做基类或超类,子类叫做派生类,每一个类都可以看作父类。继承定义格式public clas...原创 2020-01-23 14:19:53 · 398 阅读 · 0 评论 -
Java语言学习总结 高级篇 跟数学相关的工具 Math 取绝对值 向上取整 向下取整
数学工具类MathMath.abs() 获取绝对值Math.ceil() 向上取整Math.floor() 向下取整Math.round() 四舍五入直接看代码:public class MathTool { public static void main(String[] args) { //获取绝对值 System.out.println(Math.abs(-3.14...原创 2020-01-22 22:36:06 · 265 阅读 · 0 评论 -
Java语言学习总结 高级篇数组工具 Arrays的使用! toString方法,将其他数组类型转换成字符串类型,sort方法,自动排序
数组工具ArraystoString方法 和sort方法toString方法可以将其他类型的数组转换成字符串类型。sort() 方法主要是对数组进行排序,默认是自小到大排序。字符串类型数组也可以排序。示例代码:import java.util.Arrays;public class ToStringTest { public static void main(String[] ar...原创 2020-01-22 22:27:17 · 412 阅读 · 0 评论 -
Java语言学习总结 高级篇 static关键字的含义及使用方法
static关键字static修饰成员变量含义定义静态变量,是属于类所共有的,而不是类的对象所特有的,所有对象共享一份信息。示例建立一个学生类,有学生的姓名,年龄,学号这三个基本喜欢,属于每个学生私有的,但每个学生在同一个宿舍内,所有房间号是公有的,也就是每个学生所共同拥有的。建立如下的类,代码如下:public class StudentTe { private int id; ...原创 2020-01-22 22:03:09 · 221 阅读 · 0 评论 -
Java语言学习总结 高级篇 字符串的概述和特点
字符串概述及特点Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。 即程序当中的所有双引号内的字符串,都是String字符串的对象。特点字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。因为字符串不可改变,字符串可以共享使用字符串效果上相当于char[] 字符数组。创建字符串JDK...原创 2020-01-21 17:12:08 · 351 阅读 · 0 评论 -
Java语言学习总结 高级篇 ArrayList类的创建和使用
ArrayList类什么是ArrayList类ArrayList是可以实现长度可变的数组存储在内的数据称为元素。此类提供一 些方法来操作内部存储的元素。ArrayList 中可不断添加元素,其大小也自动增长。我们知道定义的数组长度是不可以改变了,而ArrayList就客服了这点,可以根据需要随时添加元素,加长长度。JDK_API 中的 介绍如图:ArrayList的使用步骤三步:导包...原创 2020-01-21 14:38:20 · 3107 阅读 · 0 评论 -
Java语言学习总结 高级篇 对象数组的创建和使用
对象数组对象数组就是用类来创建的数组。这里创建一个长度为3的Person类 数组。。Person类代码如下:public class Person { private String name; private int age; public Person() { System.out.println("执行构造方法"); } public Person(String name...原创 2020-01-21 09:58:51 · 402 阅读 · 0 评论 -
Java语言学习总结 高级篇 API的概念和使用
APIAPI(Application Programming Interface),应用程序编程接口。Java API是一本程序员的 字典, 是JDK中提供给我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。...原创 2020-01-20 22:38:33 · 338 阅读 · 0 评论 -
Java语言学习总结 高级篇 键盘输入数据Scanner类
键盘输入Scanner类的功能,主要是实现键盘输入数据到程序中,赋给变量或直接使用。 为引用类型引用类型引用类型的一般使用步骤导包import 包路径.类名称;如果需要使用的目标类,和当前类位于同一一个包下,则可以省略导包语句不写。只有java. lang包下的内容不需要导包,其他的包都需要import语句。创建类名称 对象名= new 类名称(); 注意构造函数的参数使用...原创 2020-01-20 22:32:20 · 596 阅读 · 0 评论 -
Java语言学习总结 高级篇 Random库概述及其使用
Random库概述Random库主要用来生成随机数字。Random库中的方法摘要:使用步骤三步:导包——创建——使用代码示例(获取一个随机生产的int数字):import java.util.Random;public class TestRandom { public static void main(String[] args) { Random r = new R...原创 2020-01-20 21:30:43 · 588 阅读 · 0 评论 -
Java语言学习总结 高级篇 匿名对象的创建和使用
匿名对象创建匿名对象匿名对象只有右边的对象,没有左边的关键和赋值运算符。定义格式:new 类名称();代码示例: new student().age=14; new student().dance(); new Person();运行结果如图:匿名对象只能创建且使用一次。因为每一次都必须使用new关键字,而new关键字会生成一个新的内存,即生成一个新的匿名对象。匿名...原创 2020-01-20 20:52:23 · 353 阅读 · 0 评论 -
Java语言学习总结 进阶篇 定义一个标准的类
标准的类一个标准的类通常要拥有下面四个组成部分:所有的成员变量都要使用private关键字修饰为每一个成员变量编写一-对儿Getter/Setter方法编写一个无参数的构造方法编写一个全参数的构造方法这样标准的类也叫做Java Bean示例代码如下:public class Bean { private String name; private int age; pu...原创 2020-01-20 14:09:45 · 201 阅读 · 0 评论 -
Java语言学习总结 进阶篇 构造方法
构造方法构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法。构造方法格式:public 类名称(参数类型参数名称) {方法体}注意事项:构造方法的名称必须和所在的类名称完全一样, 就连大小写也要一样构造方法不要写返回值类型,连void都不写构造方法不能有返回值如果没有写构造方法,编译器会默认设置一个构造函数。默认构造函数没有参数没有方...原创 2020-01-20 13:24:53 · 230 阅读 · 0 评论 -
Java 语言学习总结 进阶篇private和this关键字
Private 关键字用private关键字修饰的变量为类的私有变量,只有类内的函数可以访问,类外的对象不可直接用点**.**运算访问私有变量。示例:先建立一个Person类,代码如下:public class Person { String name; //默认为public private int age; public void show() { System.out....原创 2020-01-20 13:08:29 · 184 阅读 · 0 评论 -
Java语言学习总结 进阶篇 数组的概念及定义
数组数组的概念概念:数组是一个容器,可以同时存放多个数据值特点:数组是一个引用数据类型数组中多个数据的类型必须统一数组的长度在定义时规定,运行过程中不可改变。数组的定义数组的初始化:在内存当中创建一个数组, 并且向其中赋予一些默认值。两种常见的初始化方式: .动态初始化(指定长度)静态初始化(指定内容)动态初始化数组动态初始化数组的格式:数据类型[] 数组名称=...原创 2020-01-19 17:59:24 · 240 阅读 · 0 评论 -
Java语言学习总结 高级篇 类和对象创建内存分析
Java对象创建时内存分析JVM ( Java虚拟机) 主要包括E块内存空间,分别是 :栈内存、 堆内存、方法区内存。堆内存和方法区内存各有1个。一个线程一个栈内存。方法调用的时候,该方法所需要的内存空间在栈内存中分配,称为压栈。方法执行结束之后,该方法所属的内存空间释放,称为弹栈。栈中主要存储的是方法体当中的局部变量方法的代码片段以及整个类的代码片段都被存储到方法区内存当中,在类加载...原创 2020-01-18 14:39:31 · 323 阅读 · 0 评论 -
Java语言学习总结 高级篇 面向对象和面向过程
Java语言的本质 面向对象面向对象和面向过程的区别及优缺点面向过程的特点在于是由一个个因果关系组成。面向对象的特点在于是由一个个 对象的类和方法组成。-面向过程:主要关注点是:实现的具体过程,因果关系[集成显卡的开发思路]优点:对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本较低.缺点:采用面向过程的方式开发很难解决非常复杂的业务逻辑,另外面向过程的方式导致软件元素之间的...原创 2020-01-18 14:25:30 · 722 阅读 · 0 评论 -
Java语言学习总结 进阶篇 方法重载,递归调用
方法重载1、方法重载又被称为: overload2、什么时候考虑使用方法重载?功能相似的时候,尽可能让方法名相同。[但是:功能不同/不相似的时候,尽可能让方法名不同。]3、什么条件满足之后构成了方法重载?★在同一个类当中 方法名相同 参数列表不同: 数量不同 顺序不同 类型不同4、方法重载和什么有关系,和什么没有关系? 方法重载和方法名+参数列表有关系方法重载和返回值...原创 2020-01-17 21:29:37 · 394 阅读 · 0 评论 -
Java语言学习总结 进阶篇 方法的存储方法内存
方法在执行过程当中,在JVM中的内存是如何分配的呢,内存是如何变化的?1.方法只定义,不调用,是不会执行的,并且在JVM中也不会给该方法分配"运行所属"的内存空间。只有在调用这个方法的时候,才会动态的给这个方法分配所属的内存空间.2、在JM内存划分,上有这样三块主要的内存空间(当然除了这三块之外还有其它的内存空间):*方法区内存由堆内存由栈内存3、关于"栈"数据结构:栈: stac...原创 2020-01-17 17:34:53 · 307 阅读 · 0 评论 -
Java语言学习总结 进阶篇 方法
方法方法就是一段独立的代码片段,这段代码片段可以完成某个功能,并且可以重复使用。在c语言中叫做函数。方法定义在类体当中,在类当中可以定义多个方法,没有先后顺序。方法体中不能再定义方法。方法体中的代码自上而下执行如何定义方法[修饰符列表] 返回值类型 方法名 (形式参数列表){方法体;}1.1 修饰列表可选项,不是必须的目前统一写成: public statio由方法的修...原创 2020-01-17 17:02:02 · 927 阅读 · 2 评论