自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 小黄笔记之字符输出流

try { char[] b = new char[100]; FileReader fileReader = new FileReader (new File("a.txt")); FileWriter fileWriter = new FileWriter(new File("b.txt")); int len; do{ len = fileReader.read(b); if (len != -1){ //fileOutputSt

2020-07-21 10:56:34 81

原创 小黄笔记之字符输入流

FileReadertry { FileReader fileReader = new FileReader (new File("a.txt")); FileOutputStream fileOutputStream = new FileOutputStream(new File("b.txt")); int len; do{ len = fileReader.read(); System.out.println(len); }while (

2020-07-21 10:15:13 75

原创 小黄笔记之字节输入流

FileInputStreamtry { FileInputStream fileInputStream = new FileInputStream (new File("a.txt")); FileOutputStream fileOutputStream = new FileOutputStream(new File("b.txt")); int len; do{ len = fileInputStream.read(); if (len != -1

2020-07-21 10:07:08 86

原创 小黄笔记之字节输出流

FileOutputStreamtry { byte[] b = "你好啊朋友".getBytes(); FileOutputStream foStream = new FileOutputStream(new File("a.txt")); foStream.write(b);//写入“你好啊朋友” //foStream.write(b,6,4);//只写“朋友” foStream.close(); } catch (FileNotFoundException

2020-07-21 10:05:49 181

原创 小黄笔记之File类

Windows和Linux操作系统中的路径描述上存在一些差异:名字获取WindowsLinux路径分隔符File.pathSeparator;:文件名称分隔符File.separator\/File包括多重构造方法:传参一个字符串,将一个字符串封装成一个File类,这个字符串可以是存在的、不存在的、文件夹结尾的、文件结尾的。传参两个字符串,第一个字符串是父路径,第二个字符串是子路径。传入一个File类和一个字符串,非遗馆是父路径,第二个是子路径。

2020-07-21 10:05:04 78

原创 小黄笔记之Lambda表达式

Lambda表达式是用于重写接口中的方法,一个完整的Lambda表达式应该包括 参数、箭头、方法体。无参数无返回值:new Thread(()->{ System.out.println("hello world!");}).start();有参数有返回值:public class TestGrammer { public static void main(String[] args) { Person[] arr = { new Person(1, "name") ,new

2020-07-21 09:40:51 67

原创 小黄笔记之线程

有两瓶水,只有一个人的话一次只能喝一瓶,要么交替喝要么喝完一瓶再喝另一瓶,总之是不可能同时喝完的,这就是并发;如果有两个人呢?那不就可以两瓶水一起喝了?这就是并行。进程点击一个应用就会产生一件事情,例如执行java程序,这件事情就是一个进程。线程一个应用下有多种操作,每执行一个操作便会产生一个路径 ( 指针?) ,这路径便称之为线程。创建线程程序定义Tread子类,在子类中定义run()方法,将需要执行多线程的程序在run()中书写。在主程序中定义类对象,执行类对象的start()方法,便会执

2020-07-21 09:40:05 56

原创 小黄笔记之Map

put ( key , value )put()可以分为两种情况,第一种是键未重复,返回值是null,第二种是重复键值出现,返回的是已经存在的value,并将value更新。remove ( )remove()分为两种重载情况,如果传参key,则返回的是对应键值的value或者null,如果同时传参key和value,那返回值是布尔型;get ( key )get()方法如果获取成功则返回对应value,如果Map中存在这个键值,则返回;否则返回null;entrySet()返回一个set集合

2020-07-21 09:39:36 63

原创 小黄笔记之HashSet

HashSet底层是一个哈希表,因此不允许重复,查询速度快。add()可以添加重复元素,但是遍历只会显示一个,不会报出异常。Object.hashCode()可以返回一个十进制整数,即地址值。在jdk1.8+中,使用了数组加红黑树的结构,将元素按照hash值分类,添加至链表,如果超过八个链表元素则将链表转化成红黑树。haseSet存储不重复的方式是调用hashCode()和equals()方法,需要调用equals()是因为可能会产生哈希冲突,两个不同元素但是哈希值是相同的,这是因为至今世界上没

2020-07-21 09:39:00 64

原创 小黄笔记之LinkedList

底层是链表。push() 入栈 等效于addFirst()add()等效于addLast()removeFirst()移除第一个并返回isEmpty()判断是否为空getFirst()获取第一个并返回clear()清空,可能异常,因为是空链表pop()等效于removeLast()并返回...

2020-07-21 09:38:28 71

原创 小黄笔记之List集合

add()添加数据remove()移除某个位置的元素并返回被删掉的元素add(index,elem)将elem添加到index位,如果index不符合要求会报出数组下标越界异常。set()替换掉某个元素并返回被替换的元素。

2020-07-21 09:37:19 65

原创 小黄笔记之泛型

public static void main(String[] args) { new Grammer().Test("Hello1"); new Grammer().Test(1); Grammer.Test2("Hello2"); Grammer.Test2(2); }class Grammer{ public <M> void Test (M m){ System.out.println(m); } static<M> void Test2.

2020-07-21 09:36:42 66

原创 小黄笔记之迭代器

迭代器与for循环类似,但是阿里巴巴开发手册好像是说for循环不安全,我觉得好像没啥区别。 public static void main(String[] args) { Collection<String> test = new ArrayList<String>(); test.add("南山南,北秋悲"); test.add("南方有谷堆"); test.add("南风喃,北海北"); test.add("北海有墓碑"); Iterator <

2020-07-21 09:36:08 80

原创 简易计算器 内部类

package haha;import java.awt.BorderLayout;import java.awt.event.*;import javax.swing.plaf.synth.SynthStyle;import org.omg.CORBA.PRIVATE_MEMBER;import org.omg.CORBA.SystemException;import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;import java..

2020-06-12 22:25:37 187

原创 文本域事件监听

class MyGuiFrame extends Frame{ //感觉这样写代码超爽 ↑ 继承之后不再需要new Frame 感觉省事了不少 public MyGuiFrame() { //设置可见性 setVisible(true); //设置窗口大小 //myFrame.setSize(300, 300); //设置颜色 setBackground(Color.BLUE); //RGB颜色 setBackground(new Color(200,200,200));

2020-06-11 21:57:14 517

原创 事件监听

import java.awt.BorderLayout;import java.awt.event.*;import java.awt.Button;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.GridLayout;import java.awt.Panel;public class Gui { public static void main(String[

2020-06-11 18:10:11 110

原创 Frame类

Frame类是窗口的意思,是Gui的一个基本,Gui可以用于客户端页面书写(学长传授)。public static void main(String[] args){ //标题 Frame myFrame = new Frame("Hello World"); //设置可见性 myFrame.setVisible(true); //设置窗口大小 myFrame.setSize(300, 300); //设置颜色 myFrame.setBackground(Color.BLUE); //

2020-06-11 17:02:15 866

原创 Gui的三种布局方式

public static void main(String[] args){ //标题 Frame myFrame = new Frame("Hello World"); //设置可见性 myFrame.setVisible(true); //设置窗口大小 //myFrame.setSize(300, 300); //设置颜色 myFrame.setBackground(Color.BLUE); //RGB颜色 myFrame.setBackground(new.

2020-06-11 17:01:35 963

原创 编程诡事2020年6月7日

今天看到一个练习题,感觉难度适中,就试着做了一下,但是发现不太会做,先来看看题目:考察知识点非常简单,是对于comparable接口的实现,然后昨天也看了不少博客,实现方法大致如下:一开始肯定是需要导入包:import java.util.ArrayList;import java.util.Collections;import java.util.List;//因为我用List接受的ArrayList对象,所以导入了List包实现compareTo()方法,定义优先顺序,返回值是一个

2020-06-07 10:22:39 132

原创 小黄笔记之Calendar类

Calendar类也是一个与日期相关的抽象类,是为了代替Date类中的一些功能而出现的。因为是抽象类所以无法直接创建对象,但我们可以调用getInstance()方法获得它的一个子类对象。创建完对象之后可以修改属性,Calendar类中的年月日等属性是静态的所以通过类名加属性开访问,修改示例如下:Calendar cal = Calendar。getInstance();cal.set(Calendar.YEAR,1);//年也可以换成其他属性例如MONTH等System.out.println

2020-06-03 22:09:22 95

原创 编程诡事2020年6月3日

throws并不仅仅是申明可能抛出异常,还能给子类提供一个异常的出口,例如方法可能产生数组越界,如果实际运行的时候确保它不会抛出异常,那就只需要在函数最前面声名一下抛出异常便可以了,不需要使用try-catch语句。文件输入输出流在最后应该关闭,虽然我认为不关闭只是不好的编程习惯,但是今天写作业确实因为这个未能通过educoder的测评。尝试使用字节流复制文本文件失败了,原因未知。String str = "Hello World!";//今天的中试了很多方法都没能成功创建文件,最后..

2020-06-03 21:57:40 131

原创 小黄笔记之String类

创建直接创建不加任何参数,这样获得的是一个空的字符串。用一个字符数组做参数,将字符数组拼接后作为内容。因为在底层是用byte数组储存,所以可以用一个byte数组做参数,将byte数组对应字符拼接后作为内容。直接双引号内容,会在常量池中生成对应字符串常量。"=="比较基本类型的数据比较是比较内容是否相等,而引用类型则是比较地址值是否相等,即指向内容是否相等。如果是双引号包裹,Java会先帮助我们在字符串常量池中创建对象,并将地址值赋值给栈中对象,而常量池中的字符串对象则是指向一个byte数组

2020-06-02 20:03:07 84

原创 小黄笔记之SimpleDateFormat类

SimpleDateFormat类是DateFormat类的实现类,也是一个关于时间的类,但是个人感觉交互感更强。构造方法中包括的参数是一个字符串,用于说明格式化的日期格式。SimpleDateFormat a = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");创建完对象之后调用format()进行初始化,需要传参一个Date对象,类对象会帮我们将日期对象转化成构造方法对应格式的字符串。我们也可以通过调用parse()自定义的字符串转化成日期,需要传参一

2020-06-02 20:02:35 81

原创 小黄笔记之Random类

Random r = new Random();int num1 = r.nextInt();//生成范围是整个int的随机数,含正负int num2 = r.nextInt(10);//生成0-10(左闭右开)随机数2020年5月30日20:56:48

2020-06-02 20:02:00 60

原创 小黄笔记之Object类

Object是所有类的父类,每一个类都可以调用这个类中的方法。toString()是返回一个对象的字符串形式,如果没有重写则是返回该对象的内存地址,我们直接打印一个对象等同于调用该对象的toString()方法。equals()默认比较地址值,String类中的equals()是重写过的,如果不重写效果与 "=="相等。在新Java中有一个工具类叫Objects,这个类的equals方法可以避免空指针异常,例如Objects.equals(a,b)。return (a == b)||(a !=

2020-06-02 19:58:21 61

原创 小黄笔记之Math类

Math类主要为我们提供数学相关的方法。abs(dou)返回dou的绝对值floor(dou)返回向下取整后的数值ceil(dou)返回向上取整后的数值round(dou)返回四舍五入后的数值2020年5月31日10:46:13

2020-06-02 19:56:54 58

原创 小黄笔记之Date类

Date类是一个关于时间的类,构造方法分为无参数和有参数。无参数会读取系统当前时间,有参数则将数字转化成毫秒再加上1970年01月01日并转化成当前时区的时间。Date类中的getTime()方法可以获取日期类对象对应的毫秒数。在Java中有两个Date类,此处所指为util包下的Date类。2020年6月1日17:08:53...

2020-06-02 19:56:23 58

原创 小黄笔记之Arrays类

Arrays类是是个工具类,对应数据类型中的数组。toString()可以将一个数组转换称为字符串。int[] a = {1,2,3};Arrays.toString(a);sort()可以排序一个数组,默认升序。char[] a = {a,s,d,f,h};Arrays.sort(a);2020年5月31日10:33:18...

2020-06-02 19:55:52 57

原创 小黄笔记之ArrayList类

add() 添加数据(不能是基本类型,基本类型需要转换,例如 “Integer”),添加成功则返回 “true”,由于ArrayList中添加是一定会成功的,所以返回值可以不接受。get(index) 读取下标为index的元素。remove(index)移除下标为index的元素。size()获取该ArrayList的长度。泛型:创建ArrayList对象的时候我们可以指定该对象所存储数据的类型,这种限制称为泛型。2020年5月30日21:14:07...

2020-06-02 19:55:25 84

原创 Java学习第七天-抽象类-接口-内部类-异常

抽象类抽象方法是一种只需要定义参数和返回类型的方法,抽象方法必须存在于抽象类中,当一个类继承抽象类的时候他必须重写抽象方法。抽象类被抽象类继承的时候可以不重写抽象方法。抽象类中可以存在非抽象方法。接口接口中的所有方法都是 "public static"类型的,所有的属性都是 "public static final"类型的,实现接口就需要实现所有的方法,接口可以被接口继承,接口的一大意义是实现多继承关系。内部类内部类可以是定义在一个类内部,也可以是定义在类方法中。内部类通过在一个类对象中创建

2020-06-02 19:54:21 141

原创 Java学习第六天-封装-继承-多态

封装Java中的封装就像一个盒子,我们将Java中的属性放入盒子中间,这便是封装,但盒子总要有封口供我们修改数据或者查看数据,这边是 “set / get” 的由来。继承Java中的继承是模拟现实世界的从属关系,以 "生命体"和"人"为例,人是属于生命体,而生命体不只包括人,人具备生命体通性,却不仅仅只有生命体的通性。方法的重写是因为父类不满足需求或者需求与父类所写不符合,就像生命体会遗传父类的特征,也会产生变异,和父类产生差异。"super"和"this"分别指代父类和子类中的属性和方法,通过s

2020-06-02 19:53:50 64

原创 Java学习第五天-面向对象-构造器-内存分析

面向对象我的学长跟我说过一句话:“C语言跟Java是不一样的,一个面向过程一个面向对象”,于是懵懂的我便将二者对立理解,但是越学越觉得奇怪,秦疆老师说的一句话解开了疑惑:“面向过程和面向对象并不是对立的,面向对象解决问题整体是面向对象,但是每一个对象却是以面向过程存在的”。构造器在一个类中至少有一个方法,在未定义方法的时候存在的方法称为构造方法,构造方法的特点是 “无返回值、与类同名、默认无参”。当我们书写有参数构造方法时,默认的无参数构造方法便会被覆盖,此时需要手动书写无参构造函数。内存分析运

2020-06-02 19:53:18 56

原创 Java学习第四天-可变参数-数组分析-数组越界-Arrays类

可变参数有时候我们会因为参数类型不确定而大量书写重复重载方法,为了精简代码,Java为我们提供了可变参数。可变参数在一个重载中最多存在一个,且必须处于参数的最后一个。使用方法是 “函数名(可变参数类型…参数名)”。个人认为当有多个参数传入的时候,参数变成了一个数组参数。递归算法思想,参见C语言。数组与C语言类似。Java在兼容C语言部分语法的时也提供了特有的数组声名方式,方式如下 “数组类型 [] 数组名”。数组内存分析在定义数组的时候,内存中会开辟一块内存用于存放数组实际内存的位置,

2020-06-02 19:52:48 129

原创 Java学习第三天- Scanner-分支结构-循环-重载-命令行传参

ScannerJava编译器不会帮我们引入Scanner对应的包,所以我们在使用Scanner类的时候需要使用 "import java.util.Scanner; " 语句引入。Java中的hasNextInt()配合if-else分支使用效果如下,用户输入一个数字,如果不是int型则判为false,如果不将该数字读取,那下一个if(hasNextInt())所判断的仍然是刚刚输入的数字。if-else、switch()与C语言用法一致。在Java中,判断字符串是否相等时判断它的hashCode

2020-06-02 19:51:29 103

原创 Java学习第二天- 数据类型-类型转换-变量-运算符-包机制-JavaDoc

数据类型四种整数类型(byte、short、int、long):默认类型是int。整数类型表示范围由小到大的排序是byte<short<int<long。与C语言不同分是,long类型在表示的时候应在末尾加“L/l”作为标志,由于l与1难以区分,一般使用”L“。两种浮点数类型(float、double)浮点数类型表示范围由小到大的排序是float<double。与C语言不同分是,float类型在表示的时候应在末尾加“F/f”作为标志。一种字符类型(char)

2020-06-02 19:50:33 122

原创 Java-Day1-注释-标识符

注释注释,注解解释的意思,就像程序的说明书,帮助阅读程序的人更快的读懂代码的含义。单行注释在Java中,单行注释的表示方式是"//",在单行注释之后,该行的任何内容都不会被执行。// _ooOoo_ // o8888888o // 88" . "88 // (| -

2020-05-22 17:28:58 111

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除