java
文章平均质量分 78
丁佑强
努力
展开
-
Java入门(四十五)
实现多线程进程。进程对应正在运行的应用程序,是系统进行资源分配和调用的独立单位,每一个进程都有他自己的内存空间和系统资源。线程。在进程里面可以执行一个任务或多个任务,每一个任务可以看成是一个线程。线程他就是进程中单个控制流,一条执行路径。假如进程中他只有一条执行路径,那这个程序应该是一个单线程的程序。一个进程如果有多条执行路径,则称为多线程程序。继承Thred类实现多线程thread类他是程序中执行的线程。Java虚拟机允许应用程序同时执行多个执行线程。创建一个新的执行线程由两种方法,一个原创 2022-01-27 21:54:37 · 528 阅读 · 0 评论 -
Java入门(四十四)
Properties和IO流结合的方法方法名说明void load(InputStream inStream)从输入字节流读取属性列表(键和元素对)void load(Reader reader)从输入字符流属性列表(键和元素对)void store(OutputStream out,String comments)将此属性列表(键和元素对)写入此Properties表中,以适合于使用load(InputStream)方法的格式写入输出字节流void store原创 2022-01-27 21:04:34 · 3308 阅读 · 0 评论 -
Java入门(四十三)
打印流打印流分类:字节打印流:PrintStream,字符打印流:PrintWriter。PrintStream构造方法选择采用String的方法打印流的特点:只负责输出护具,不负责读取数据。他有自己的特有方法PrintStream(String fileName):使用指定得文件名创建新的打印流。` PrintStream ps = new PrintStream("/home/ding/IdeaProjects/Study/src/com/itheima_04/ps.txt原创 2022-01-26 21:47:32 · 411 阅读 · 0 评论 -
Java入门(四十二)
文件到集合(改进版)需求:把文本文件中的数据读取到集合中,兵遍历集合。要求:文件中每一行数据是一个学生对象的成员变量值 。如 itheima001,林青霞,30,西安思路定义学生类创建字符缓冲输入流对象创建ArrayList集合对象调用字符缓冲输入流对象的方法读数据把读取到底字符串数据用split()进行分割,得到一个字符串数组创建学生对象把字符串数组的每一个元素取出来对应的赋值给学生对象的成员变量值把学生对象添加到集合释放资源遍历集合学生类四个属性:sid name原创 2022-01-25 21:55:09 · 399 阅读 · 0 评论 -
Java入门(四十一)
字符缓冲流字符缓冲流用来提高读写的效率。BufferedReader,从字符输入流读取文本,缓冲字符,以提供字符、数组和行的高效读取。可以指定缓冲区大小,或者可以使用默认大小。- 他的构造方法 参数里面Reader可以是FileInputReader,也可以是StreamInputReader- 另外一个对应的类BufferedWriter,将文本写入字符输出流,缓冲字符,以提供单个字符、数组和字符串的高效写入。 BufferedWriter bw = new BufferedWri原创 2022-01-24 23:47:51 · 237 阅读 · 0 评论 -
Java入门(四十)
字节缓冲流BufferedOutputStream类,该类实现缓冲输出流,通过设置这样的输出六,应用程序可以向底层输出流写入字节。而不必为写入的每个字节导致底层系统的调用。他可以向FileOutputStream这样的底层输出流写数据,通过一个缓冲区,可以一次性把数据写到文件中。底层调用次数就减少,提高了效率构造方法和他对应的事BufferedInputStream,他是一个具体类。创建BufferedInputStream将创建一个内部缓冲区数组,当从流中读取或跳过字节时,内部缓冲区需要从所原创 2022-01-23 21:49:05 · 507 阅读 · 0 评论 -
Java入门(三十九)
字节流读数据(一次一个)需求:把文件fos.txt中的内容读取出来在控制台输出FileInputStream 从文件系统中的文件获取输入字节构造方法FileInputStream(String name):通过打开与实际文件的连接来创建一个FileInputStream,该文件由文件系统的路径名name命名。使用字节输入流读数据的步骤:创建字节输入流对象调用字节输入流对象的读数据方法释放资源import java.io.FileInputStream;import java.i原创 2022-01-23 15:28:17 · 410 阅读 · 0 评论 -
Java入门(三十八)
IO流概述和分类IO流概述:输入/输出(Input/Output) 。流是一种抽象的概念的总称,也就是说数据在设备间的传输称为流,流的本质是数据传输。IO流就是用来处理设备间数据传输问题的。常见的应用:文件复制;文件上传;文件下载。要把硬盘上的东西加载到内存里面,这个动作是输入,输入对应的是读数据。把内存中的内容放到硬盘上,是输出的动作,输出对应写数据。IO流分类,按照数据的流向分为:输入流、输出流。按照数据类型来分又可以分为字节流和字符流。字节流分为字节输入流和字节输出流。字符流分为字符出入原创 2022-01-22 12:50:03 · 464 阅读 · 0 评论 -
java入门(三十七)
java入门(三十七)FileFile类概述和构造方法File类在java.io下。File是文件和目录路径名的抽象表示,文件和目录可以通过File封装成对象。对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。他可以是存在的,也可以是不存在的,将来是要通过具体的操作把这个路径的内容转换为具体存在的。File有四个构造方法| 方法名 | 说明 ||–|--|| File(String pathname) | 通过将给定的路径名字符串转换为抽象路径明来创建新原创 2022-01-20 22:14:49 · 267 阅读 · 0 评论 -
java入门(三十六)
案例:统计字符串中每个字符出现的次数需求:键盘录入一个字符串,要求统计字符串中每个字符串出现的次数举例:键盘录入aababcabcdabcde,在控制台输出 ”a(5)b(4)c(3)d(2)e(1)“,统计他出现的次数。分析:我们可以把结果分成几个部分来看:a(5),b(4),c(3),d(2),e(1)每个部分可以看成是:字符和字符对应的次数组成的这样的数据,可以通过HashMap集合来存储,键是字符,值是字符出现的次数注意:键是字符,类型应该是包装类Character。值是字符出现原创 2022-01-18 20:26:02 · 162 阅读 · 0 评论 -
Java入门(三十五)
Map集合概述和特点map由两部分组成,k是map集合里面存储键的类型,v是map里面存储值的类型。map集合是一个接口,将键映射到值的对象,他不能包含重复的键,每个键可以映射到一个值。举例,比如下面的学号对应姓名。学号是不能重复的,并且一定对应一个姓名itheima001 林青霞itheima002 张曼玉itheima003 王祖贤map是一个接口不能创建对象,HashMap实现了map接口。创建map集合采用多态的方式,使用具体的实现类HashMap。import jav原创 2022-01-17 19:04:28 · 261 阅读 · 0 评论 -
Java入门(三十四)
Java入门(三十四)泛型泛型:是JDK5中引入的特性,他提供了编译时类型安全监测机制,该机制允许在编译时监测到非法的类型,它的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。一提到参数,最熟悉的就是形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体类型参数化,然后再使用/调用时传入具体的类型,这种参数类型可以用在类、方法和接口中,分别被称为泛型类、泛型方法、泛型接口。泛型定义格式:<类型>:指定一种类型的格式,这里的类型可以看原创 2022-01-15 11:44:00 · 212 阅读 · 0 评论 -
java入门(三十三)
java入门(三十三)比较器排序Comparator的使用存储学生对象并遍历,创建TreeSet集合使用带参构造方法。要求:按照年龄从小到大排序,年龄相同时,按照姓名的字母顺序排序。之前这个用自然排序实现过,现在用比较器排序实现compare方法里是两个学生对象,并把它的前面的this和s进行了匹配。接着写规则,因为不能访问私有变量,所以要写getAge方法。import java.util.Comparator;import java.util.TreeSet;public class原创 2022-01-14 22:33:54 · 123 阅读 · 0 评论 -
Java入门(三十二)
Java入门(三十二)Set集合概述和特点Set的功能全部来自于Collection,Set集合不包含重复元素的集合,我们学习的重点是如何保证集合里面没有重复的元素。没有带索引的方法,所以不能使用普通for循环遍历。练习:存储字符串并遍历set是一个接口,不能直接实例化。找到HashSet该类实现了set接口,HashSet底层数据结构是HashMap。他对集合的迭代顺序不做任何保证,特别是他不能保证在一段时间内保持不变。import java.util.HashSet;import原创 2022-01-13 19:31:54 · 336 阅读 · 0 评论 -
Java入门(三十一)
Java入门(三十一)List集合子类的特点List 常用集合子类:ArrayList,LinkedListArrayList底层实现是数组,数组的特点是查询快,增删慢LinkedList是双链表实现了List和Deque接口,LinkedList底层数据结构是链表,链表是查询慢,增删快练习:分别使用ArrayList和LinkedList完成存储字符串并遍历,和LIst一样有迭代器、普通for和增强for三种遍历方式。import java.util.ArrayList;public原创 2022-01-12 21:22:18 · 70 阅读 · 0 评论 -
Java入门(三十)
Java入门(三十)数据机构之栈和队列栈数据结构是计算机存储、组织数据的方式。是指互相之间存在一种或多种特定关系的数据元素的集合。精心选择的数据结构可以带来更高的运行或者存储效率。现在要演示把ABCD数据存入到栈里面,然后从里面再取出的过程数据进入栈模型的过程称为:压/进栈 。数据D被称为栈顶元素,数据A被称为栈底元素数据离开栈模型的过程称为:弹/出栈。按顺序是 从 D 到 A出来的栈是一种先进后出的模型,因为他只有一端开口。队列另外一种是和栈对应的数据结构原创 2022-01-12 18:51:09 · 267 阅读 · 0 评论 -
java入门(二十九)
并发修改异常需求:有一个集合,里面有三个元素。遍历集合,得到每一个元素,看有没有"world"这个元素,如果有,九田家一个“javee”的元素import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class LIstDemo { public static void main(String[] args) { // 创建集合对象 List<原创 2022-01-11 20:52:18 · 320 阅读 · 0 评论 -
Java入门(学生管理系统)
Java入门(学生管理系统)系统的主界面如下:有学生Student类,有StudentManager类。Student类有4个属性:学号,名字,年龄,地址。StudentManager:有添加学生方法,查看学生方法,删除学生方法,修改学生方法。...原创 2022-01-08 22:26:47 · 149 阅读 · 0 评论 -
Java入门(二十八) 补ArrayList
ArrayList集合基础有个场景,一个人考了100分,要存储这个人的分数用变量就可以了。但是考试不可能是一个人考试,他有很多个人考试就有很多个分数。我要存储这些分数怎么办呢?这就想到了数组。但是考虑到假如考试当天有人生病了,现在这个数组应该变化,而数组的长度是固定的不能发生改变的,这个时候数组就满足不了需求了。集合特点是提供了一种可变的存储模型,存储的容量可以发生改变。目前学习的是ArrayList。此列表元素中的烈性,ArrayList是可调整大小数组的实现,他底层其实是个数组。Array原创 2022-01-08 17:00:50 · 352 阅读 · 0 评论 -
Java入门(二十八)
Java入门(二十八)集合集合类的特点:提供了一种存储空间可变的存储模型,存储的数据容量可以随时发生变化。集合最主要的用处就是存储和取出数据的。比如说我有数据:张三、李四、王五,他是单列的,这样的数据在集合中是通过collection集合来实现的。所以collection集合也被称为单列集合。再在他前面加上数据,这样每个数据张三、李四、王五他都是由双列组成的,这样的数据存储在集合中是通过map来实现的,所以map集合也被称为双列集合。单列集合中出现了问题,张三、李四、张三中,张三出现了两次,原创 2022-01-08 16:23:11 · 424 阅读 · 0 评论 -
Java入门(二十七)
内部类内部类就是在一个类的内部再定义一个类,比如在A类中定义一个B类,那么B类相对于A类就是一个内部类了。它分为很多种:成员内部类静态内部类局部内部类匿名内部类成员内部类,定义一个Outer类(外部类的意思)public class Outer { private int id; public void out(){ System.out.println("这是外部类的方法"); } class Inner{ pub原创 2022-01-06 19:38:28 · 384 阅读 · 0 评论 -
Java入门(二十六)
Java入门(二十六)抽象类抽象类通过abstract修饰类。我们现在写一个Action类,他是个普通的类但是只要在他前面生成abstract,他就变成抽象类了。假设想再一个方法上面做一些事情,假设这个方法里面没有任何东西,是一个约束。如下,只有方法的约束,没有方法的名字。抽象方法只有方法名字,没有方法的实现。我们再来一个A类,要去继承这个抽象类。这时候就会报错,说如果要继承就必须重写抽象方法抽象类所有方法必须由子类实现,继承了他的子类,他的子类都必须要实现它的方法。除非他的子类也是给a原创 2022-01-03 20:37:32 · 227 阅读 · 0 评论 -
Java入门(二十五)
Java入门(二十五)static关键字修饰static如果在类中使用他就是修饰成员变量,如果在方法就是在成员方法。如果加在方法上就是静态方法,如果加在属性上就是静态属性。比如来一些属性public class Student { private static int age; private double score;}用类变量的时候,score报了错,非静态的字段不能这样子去用。静态的变量在内存只有一个,他能被类中所有的实例去共享。所以想用很多类去操作他的时候,就原创 2022-01-03 20:10:18 · 226 阅读 · 0 评论 -
Java入门(二十四)
Java入门(二十四)多态多态可以实现动态变量,程序的最终状态只有在执行的过程中可以决定。动态编译:可扩展性更强,多态可以让我们不用管写的程序是什么状态。新建一个包,继续Student继承Person类,相当于学生现在也是一个人了。如果new Person,那么他出来的东西一定是Person类的。如果new Student,那他肯定是Student类的,不会再有其他东西,一个对象的实际类型他是确定的。类型确定,但是他可以指向引用类型就不确定的了。public class Application原创 2022-01-02 22:31:16 · 233 阅读 · 0 评论 -
Splunk props.conf配置
props参数SHOULD_LINEMERGE 默认为true,日志不会根据分行分成多个事件。false则会分成多个事件LINE_BREAKER 将事件分行,通过正则捕获分组来后,被匹配的作为前一个事件的结束然后换行,被捕获的内容会被丢弃。------111<message>222<message>333------输入(< message>)变为------111222333-----BREAK_ONLY_BEFORE 将事件内匹配原创 2022-01-01 22:49:24 · 812 阅读 · 0 评论 -
Java入门(二十三)
Java入门(二十三)继承java中的继承和现实生活中的继承是一样的,比如动物是个很高的分类(哺乳动物,爬行动物),比如哺乳动物再往下细分,一层一层地分级。之前学的封装是对一个对象、类的封装,比如类有属性、方法。属性加方法构成了类,如果类太多了是也得抽象。比如国家,有美国人、中国人、日本人。人是很广泛的,下面再通过国家,色种来判断细分的类。继承的本质是对一批类的抽象,对类进行抽象。从而让代码实现建模,extends的意思是扩展,比如儿子继承了爸爸所有的东西,都是一样的。我们写两个类,Person类原创 2022-01-01 18:13:21 · 168 阅读 · 0 评论 -
Java入门(二十二)
Java入门(二十二)封装封装就是把一个东西封装起来,装到一个箱子只留一个口,让那个口给别人拿到。去看电视的时候只拿一个遥控器换台就行了,没有必要去了解电视机内部构造。厂家为了方便使用,就把内部非常复杂的东西封装起来,只给我们暴露一些简单的接口,比如一个电源开关,一个换台键。程序设计应该追求“高内聚,低耦合”。高内聚就是将内部数据操作细节自己完成,不允许外部干涉,比如银行内部的金钱不应该由银行外部的人去管。每个人只能操作他当前的账户。低耦合就是尽量暴露少量的方法给外部的人使用,比如取钱,能取钱只有普原创 2022-01-01 17:43:42 · 56 阅读 · 0 评论 -
Java入门(二十一)
Java入门(二十一)新建一个Pet类package base.oop.demo04;public class Pet { String name; int age; public void shout(){ System.out.println("叫了一声"); }}现在右边pet类存在一个默认的无参构造首先第一步我们要把pet给new出来package base.oop.demo04;public class Applic原创 2022-01-01 15:47:25 · 213 阅读 · 0 评论 -
Java入门(二十)
Java入门(二十)类与对象的关系类是一种抽象的数据类型,他可以将一类事物共性抽象出来。他不能代表某一个具体的事物动物、植物、手机、电脑Person类、Pet类、Car类对象使用抽象概念的具体事例张三是人的一个具体实例,张三家里的旺财就是狗的一个具体事例。狗也是一个具体的实例。具体的对象能体现具体的特性,展示出功能的是具体的实例,而不是一个抽象的概念。类是对象的模板。如何创建对象?用new关键字,new创建时会分配内存的空间和默认的对象。从现在起养成一个习惯,不要在每个类原创 2022-01-01 13:49:08 · 81 阅读 · 0 评论 -
Java入门(十九)
Java入门(十九)面向对象编程Java核心思想是OOP之前的学习都是面向过程的,程序由上到下依次执行。物以类聚,分类的思维模式。最初语句非常非常的多,我们把他提出来叫做方法。如果字面量多了提出来叫做结构体。最后还有更多不想写的东西,就把他的方法特性提出来,方法加属性就构成类了。面向过程就像线性思维,先考虑第一步做什么,再考虑第二步做什么,步骤明确,界限清晰。如果问题特别复杂,要造高楼的话一个人造就比较困难,成本比较高。面向对象思维是分类的思维方式,找一个总设计师,分配任务给下面的人。刷墙的,原创 2021-12-29 23:13:47 · 138 阅读 · 0 评论 -
Java入门(十八)稀疏数组
Java入门(十八)稀疏数组五子棋游戏稀疏数组是一种数据结构,我们来写一个五子棋游戏,五子棋游戏有存盘退出和续上盘的功能。黑棋用1代表,蓝棋用2代表但是这个二维数组去存的话,发现很多默认都是0。存出来很多数都是没有意义的,能不能把他干掉呢?于是乎,我们要用一种压缩算法,让他数据量变少。稀疏数组,比如大部分元素为0或者同一个值,这种数组可以使用稀疏数组保存。首先记录数组几行几列。比如上面棋盘11行11列,我们就只记录1和2,其他没有意义的不计。把具有不同值的元素和行列及值记录在一个小规模的数组原创 2021-12-29 22:14:58 · 363 阅读 · 0 评论 -
Java入门(十七)
Java入门(十七)Arrays类在数组中,并没有什么方法可以供我们使用,只有array.length可以用。我们自己写一个方法去遍历、反转数组。那么Java在数组方面给我们提供了一个java.util.Arrays的类。用这个类可以进行一些操作。Arrays类包含操作数组方法,如果数组为空,他就会抛出异常里面有许多的方法,都是以static开头的。我们可以直接调用要去学习一个类,可以点进去类里面看一下源码。点击structurebinarySearch是二分查找法,fill可以直接把原创 2021-12-26 19:40:23 · 93 阅读 · 0 评论 -
Java入门(十六)
Java入门(十六)数组的使用数组的长度都是确定而且必须是同个类型,一般处理数组的时候使用for each循环就可以了。 public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; // 打印全部数组元素 for (int i = 0;i<arrays.length;i++){ System.out.println(arrays[i]);原创 2021-12-23 20:40:56 · 194 阅读 · 0 评论 -
Java入门(十五)
Java入门(十五)数组String args[] 就是定义了一个String类型的数组。数组的升级就是多维数组的使用,有一维、二维、三维等。Arrays类是直接操纵数组的类,直接学了scanner类,就是接收键盘输入的类。以后还会学习非常多的类,java学习实际上就是学习一个又一个的类。最后是讲稀疏数组,可以进行压缩和保存,大大减少空间量。什么是数组?可以理解为一组数。意思是就是我们定义了一个数组,里面存放了很多数字,数组可以看成相同类型数据的有序集合。比如{1,2,3,4},还可以通过下标取出里原创 2021-12-20 21:20:47 · 366 阅读 · 0 评论 -
Java入门(十四)
Java入门(十四)递归A方法调用B方法,例如main方法里面调用其他方法。而递归就是:A方法代用A方法,就是自己调用自己。 public static void main(String[] args) { Demo06 test = new Demo06; //test代表Demo06这个类,然后它里面有这么个方法,调用它就好了 test.test(); } public void test(){ test();原创 2021-12-18 13:58:20 · 584 阅读 · 0 评论 -
Java入门(十三)
Java入门(十三)Java 方法详解什么叫做方法?日常生活中就是我们要解决某些事情而要采取的解决办法。比如你们今天要来学校学习,你要怎么过来呢?你是通过公交车、打的?这些解决问题的东西都叫做方法。在Java当中方法是用来完成某些事情的,比如写一个添加的方法叫做add() ,把 1 和 2 添加进去 add(1,2)他就会返回一个3 。这就是加法的方法,以前用过的println()这些都是方法。首选了解什么是方法方法的定义及调用方法重载命令行传参可变参数递归什么是方法?Sys原创 2021-12-15 22:25:48 · 306 阅读 · 0 评论 -
Java入门(十二)
Java入门(十二)break continuebreak在之前switch里面看过了,是用来终止switch语句的,不写break,switch的case就有一个穿透现象。break也能用在循环主题的一部分,他可以终止循环,continue也能终止某一次循环。break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。 int i = 0; while (i<100){ i+原创 2021-12-12 14:06:13 · 195 阅读 · 0 评论 -
Java入门(十一)
Java入门(十一)java提供了for语句,for循环可以让结构变得更简单。for(初始化; 布尔表达式; 迭代){ //代码语句}下面代码都是循环,for循环通过i++迭代 public static void main(String[] args) { int a = 1; //初始化条件 while (a<=10){ System.out.println("a"); //循环体 a +原创 2021-12-11 17:57:28 · 236 阅读 · 0 评论 -
Java入门(十)
Java入门(十)循环结构我们学到的程序都是一次执行完就停止,就算是scanner也是工作一次就停止,这样的代码在网站上是不行的,网站需要24小时不停的工作。于是乎循环结构就诞生了java主要有三种循环结构:while循环,do…while循环,for循环。在java5中引入了一种主要用于数组的增强型for循环。while循环while 是最基本的循环,只要布尔表达式为true,循环就会一直执行下去。就像闹钟,每到那个点他就响了,除非他没电了。while (布尔表达式){ //循环内容原创 2021-12-06 21:00:14 · 165 阅读 · 0 评论 -
Java入门(八)
Java入门(八)流程控制第一步我们先学一个和用户交互的scanner对象。第二个讲三种结构:顺序结构、选择结构、循环结构。Scanner对象,我们之前学的基本语法没有实现程序和人的交互,但是java提供了一个工具类java.util.Scanner,扫描用户输入的类,我们可以用它获取用户的输入。基本语法Scanner s = new Scanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般要使用hasNext(原创 2021-12-05 14:47:08 · 204 阅读 · 0 评论