![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaSE
捉猪的同伙
这个作者很懒,什么都没留下…
展开
-
正则表达式
正则表达式用于操作字符串数据原创 2020-04-29 14:21:21 · 327 阅读 · 0 评论 -
反射机制
java反射机制就是在运行状态中,对于任意一个类(class文件),都能够知道这个类的所有属性和方法 对于任意一个对象,都能够调用它的任意一个方法和属性 这种动态获取信息以及动态调用方法的功能称为java语言的反射机制 ...原创 2020-04-18 14:00:03 · 119 阅读 · 0 评论 -
网络编程
网络模型 OSI(Open System Interconnection开放系统互联)参考模型 TCP/IP参考模型 网络通信要素 IP地址 端口号 传输协议原创 2020-04-16 19:21:35 · 162 阅读 · 0 评论 -
GUI
GUI(图形用户接口) 用图形的方式,来显示计算机操作的界面,这样更方便更直观 CLI(命令行用户接口) 常用的Dos命令操作 Awt java.awt:Abstract Window ToolKit(抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件。 布局管理器 容器中的组件的排放方式,就是布局。 常见的布局管理器: FlowLayout(流式布局管理器):从左...原创 2020-04-02 14:09:00 · 96 阅读 · 0 评论 -
IO流_3
ObjectInputStream ObjectOutputStream package com.monfolld.ObjectStream; import com.monfolld.p.bean.Person; import java.io.*; public class ObjectStreamDemo { public static void main(String[] ...原创 2020-03-28 16:45:16 · 102 阅读 · 0 评论 -
IO流_2
File类 用来将文件或者文件夹封装成对象 方便对文件与文件夹的属性信息进行操作 File对象可以作为参数传递给流的构造函数 了解File类中的常用方法 构造方法 File(File parent, String child) //从父抽象路径名和子路径名字符串创建新的 File实例。 File(String pathname) //通过将给定的路径名字符串转换为抽象...原创 2020-03-19 17:23:40 · 65 阅读 · 0 评论 -
IO流_1
IO(Input Output)流 用来处理设备之间的数据传输 Java对数据的操作都是通过流的方式 Java用于操作流的对象都在IO包中 流按操作数据分为两种:字节流与字符流 流按流向分为输入流,输出流。 输入流与输出流 输入流和输出流相对于内存设备而言 将外设中的数据读取到内存中:输入 将内存的数据写入到外设中:输出 字符流的由来 其实就是:字节流读取文字字节数据后,不直接操作...原创 2020-02-23 20:42:32 · 86 阅读 · 0 评论 -
其他对象API
System类 包含一些有用的类字段和方法。它不能被实例化。 System类提供的System包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。 static PrintStream err //“标准”错误输出流。 static InputStream in //“标准”输入流。 s...原创 2020-02-01 22:00:13 · 83 阅读 · 0 评论 -
一丶Java 中>>和>>>的区别;二丶java中&&和&,||和|的区别。
一:Java中的位运算符: >>表示右移,如果该数为正,则高位补0,若为负数,则高位补1; >>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。 表达式为: result = exp1 >> exp2; result = exp2 >>> exp2; 表示把数exp1向右移动ex...原创 2019-06-11 20:39:58 · 941 阅读 · 0 评论 -
运用异或^交换ab
a=3,b=5; a=a^b; //a=3^5; b=a^b; //b=(3^5)^5; a=a^b; //a=(3^5)^3;原创 2019-06-12 10:03:45 · 1079 阅读 · 0 评论 -
简单理解java内存
内存的划分: 1:寄存器 2:本地方法区 3:方法区 4:栈内存,储存的都是局部变量,而且变量所属的作用域一旦结束,该变量就自动释放。 5:堆内存,储存的是数组和对象(其实数组就是对象),凡是new建立在堆中。 特点:1每一个实体都有首地址值。 2堆内存的每一个变量都有默认初始化值根据类型的不同而不同。整数是0,小数是0.0或者0.0f,boolean fals...原创 2019-06-13 14:16:00 · 85 阅读 · 0 评论 -
获取最值
获取数组中的最大值。思路: 1,需要进行比较。并定义变量记录住每次比较后较大的值。 2,对数组中的元素进行遍历取出,和变量中记录的元意进行比较,如果遍历到的元票大于变量中记录的元素,就用变量记录住请大的值。 3, 遍历结果,该变量记录就是最大值.定义一个功能来是实现。是数组中的元素。 package wzh; public class zui...原创 2019-06-14 10:14:09 · 154 阅读 · 0 评论 -
选择排序
原理:每一趟从待排序的记录中选出最小的给定数组:int[]arr={里面n个数据};第1趟排序,在待排序数据arr[1]~arr[n]中选出最小的数据,将它与arrr[1]交换;第2趟,在待排序数据arr[2]~arr[n]中选出最小的数据,将它与r[2]交换;以此类推,第i趟在待排序数据arr[i]~arr[n]中选出最小的数据,将它与r[i]交换,直到全部排序完成。元素,顺序放在已排好序的序...原创 2019-06-17 18:11:52 · 69 阅读 · 0 评论 -
冒泡排序
原理: 比较相邻的元素,如果前一个比后一个大,就把它们两个调换位置。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 package test; public class maopao { public static...原创 2019-06-18 16:43:46 · 76 阅读 · 0 评论 -
排序位置置换代码提取
无论什么排序,最基本的功能是换位置,于是可以把该功能作为一个函数提取出来,方便使用 public static void swap(int[] arr,int a,int b){ int temp=arr[a]; arr[a]=arr[b]; arr[b]=temp; } ...原创 2019-06-20 10:32:00 · 73 阅读 · 0 评论 -
选择排序提高性能
原理:在一般选择排序的基础上,首先对数组元素进行比较,但不换位。通过内循环找到数组元素中的最小值,再 对最小值和内循环的首元素进行换位 package com.monfolld; public class selectSort { public static void main(String[] args) { int[] arr={11,34,45,22,31,...原创 2019-06-20 10:32:21 · 73 阅读 · 0 评论 -
折半查找
原理:每一次查找,将查找的区间从中间分为两部分,取其中一部分再次进行这样的查找。 折半查找是一种高效的查找方法。它可以明显减少比较次数,提高查找效率。 但是,折半查找的先决条件是查找表中的数据元素必须有序。 package com.monfolld; public class half { public static void main(String[] args){ ...原创 2019-06-21 20:44:36 · 135 阅读 · 0 评论 -
获取一个整数16进制的表现形式
原理:将整数&15输出即得到最低四位的16进制表现形式,将整数向右移4位再&15即得到下一个四位的16进制表现形式(二进制&1,右移1位;八进制&7,右移3位) package com.monfolld; public class ArrayTest { public static void main(String[] args){ t...原创 2019-06-24 13:04:52 · 165 阅读 · 0 评论 -
进制转换-查表法
什么时候使用数组呢?如果数据出现了对应关系,而且对应关系的一方时有序的数字编号,并作为角标使用。这时就必须想到数组的使用。就可以将这些数据存储到数组中,根据运算结果作为角标去查找数组中对应的元素即可。 package com.monfolld; public class ArrayTest { public static void main(String[] args){ ...原创 2019-06-25 12:11:18 · 143 阅读 · 0 评论 -
面向对象
用java语言对现实生活中的事物进行描述。通过类的形式来体现的。 对于事物描述通常只关注两方面:一是属性,二是方法。 只要明确该事务的属性和行为并定义在类中即可。 对象:其实是该事务实实在在存在的个体。 类与对象的关系? 类:事物的描述。 对象:该事物的实例,在Java中通过new来创建的,一旦创建一个对象,这个对象存在100%类中所描述的内容。 package com.monfo...原创 2019-06-30 21:02:00 · 59 阅读 · 0 评论 -
匿名对象
匿名对象:没有名字的对象。 Car c=new Car(); c.run(); 等同与 new Car().run(); 匿名对象,其实就是定义对象的简写格式。 当对象对方法仅进行一次调用的时候,就可以简化成匿名对象 new Car().num=5; new Car().color="red"; new Car().run(); 匿名对象可以作为实际参数进行传递。 Car ...原创 2019-07-01 19:27:56 · 57 阅读 · 0 评论 -
构造函数
构造函数:构建创造对象时调用的函数。 作业:可以给对象进行初始化,即对象一创建出来就具备一些内容。 创建对象都必须要通过构造函数初始化。 package com.monfolld; class Person { private int age; public void setAge(int a){ age=a; } public int g...原创 2019-07-02 18:31:51 · 69 阅读 · 0 评论 -
this关键字
当成员变量和和局部变量重名,可以用关键字this区分。 this:this就是所在函数所属对象的引用。哪个对象调用了this所在的函数,this就代表哪个对象。 package com.monfolld; class Person1{ private String name; private int age; Person1(){ name="baby...原创 2019-07-04 09:58:25 · 65 阅读 · 0 评论 -
封装
封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式 好处:将变化隔离,便于使用,提高复用性,提高安全性。 封装原则:把不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问 private:私有,是一个权限修饰符,用于修饰成员。私有的内容只在本类中有效。 注意:私有仅仅是封装的一种体现而已。 最小的封装就是函数,我们只需要知道函数的功能和返回结果,需要传入的内容就够了。 ...原创 2019-07-11 22:01:33 · 183 阅读 · 0 评论 -
static关键字
作用:用于修饰成员(成员变量和成员函数) 被修饰的成员特点: 随着类的加载而加载 优先于对象存在,因为static成员随着类的加载就已经存在了 被所有对象共享 可以直接被类名调用 static修饰的数据是共享数据,对象的存储的是特有数据 使用方法: 静态方法只能访问静态成员 静态方法中不可以写this,super关键字 主函数是静态的 package com.monfolld;...原创 2019-07-12 17:52:43 · 77 阅读 · 0 评论 -
单例设计模式
设计模式:对问题行之有效的解决问题,其实是一种思想。 1.单例设计模式:解决的问题,就是各异保证一个类在内存的唯一性。 必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。 如何保证对象的唯一性? 1.不允许其他程序用new创建该类对象。 2.在该类创建一个本类实例。 3.对外提供一个方法让其他程序可以获取对象。 步骤: 1.私有化该类构造函数。 2,通过new在...原创 2019-07-16 21:44:29 · 99 阅读 · 0 评论 -
继承
继承的好处: 1.提高了代码的复用性。 2.让类与类之间产生了关系,给第三个特征多态提供了前提。 java种支持单继承,不支持多继承,但对c++种的多继承机制进行改良。 单继承:一个子类只能有一个直接父类。 多继承:一个子类可以有多个直接父类(Java不允许,进行改良),不直接支持,因为多个父类种有相同成员,会产生调用不确定性。 java支持(多重)继承。 当使用一个继承体系时, ...原创 2019-07-18 09:44:41 · 90 阅读 · 0 评论 -
继承-子父类中的构造函数
在子类构造对象时,发现,访问子类构造函数时,父类也运行了。 原因:在子类的构造函数中第一行有一个默认的隐式语句super(); 子类的实例化过程:子类所有的构造函数默认都会访问父类中空参数的构造函数。 class Fu { Fu() { System.out.println("fu run"); } } class Zi extends Fu { Zi() { //sup...原创 2019-07-21 08:43:02 · 124 阅读 · 0 评论 -
final关键字
1.final是一个修饰符,可以修饰类,方法,变量。 2.final修饰的类不可以被继承。 3.final修饰的方法不可以被覆盖。 4.final修饰的变量是一个常量,只能赋值一次。 为什么要用final修饰变量,其实在程序中如果一个数据是固定的,那么直接使用这个数据就可以了,但是这样阅读性差,所以该数据起个名称,这个变量名称的值不能变化,所以加上final固定。 写法规范:常量所有字母...原创 2019-07-22 19:25:07 · 199 阅读 · 0 评论 -
抽象类
抽象:笼统,模糊,看不懂,不具体。 特点: 1.方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰。抽象方法必须定义在抽象类中,该类必须也被abstract修饰。 2.抽象类不可以被实例化。为什么?因为调用抽象方法没意义。 3.抽象类必须有其子类覆盖了所有的抽象方法后,该子类才可以实例化。否则,这个子类还是抽象类。 抽象类的细节: 1.抽象类有构造函数,用于给子类对...原创 2019-07-24 13:21:01 · 207 阅读 · 0 评论 -
接口interface-实现implements
概念 当一个抽象类中的方法都是抽象的时候,这时可以将抽象类用另一种形式定义和表示,那就是接口interface。 对于接口中常见的成员,而且这些成员都有固定的修饰符: 1.全局变量:public static final 2.抽象方法:public abstract interface Demo { int NUM=4; //public static final i...原创 2019-07-28 10:54:19 · 405 阅读 · 0 评论 -
接口的应用
下面是一个笔记本接口鼠标的例子 用接口USB将笔记本BookPC和鼠标Mouse连接起来 package com.monfolld; interface USB //暴露的规则 { public void open(); public void close(); } public class BookPC { public s...原创 2019-08-01 19:59:19 · 72 阅读 · 0 评论 -
多态
概念 现实事物经常会体现出多种形态,如猫是动物的一种:一只猫咪,既是猫也是动物,即出现两种形态。 Java可以描述这种关系,猫类继承了动物类,猫这类事物的对象便既是猫,又是动物。 多态在代码中的体现: 父类或者接口的引用指向其子类的对象 package com.monfolld; public abstract class Animal { public abstract void...原创 2019-08-06 10:42:41 · 63 阅读 · 0 评论 -
内部类
概述 将一个类定义在另一个类里面类就称为内部类 访问特点: 1.内部类可以直接访问外部类中的成员,包括私有成员 2.外部类要访问内部类中成员必须要建立内部类的对象 内部类的设计:分析事物时,发现该事物中还有事物,而且这个事物还在访问被描述事物的内容,这时就是还有的事物定义成内部类来描述 修饰符 package com.monfolld; class Outer1 { pri...原创 2019-08-11 14:04:30 · 77 阅读 · 0 评论 -
对象的初始化过程
下面代码的运行顺序: 先super(),父类中进行构造函数,调用show,子类方法将父类中的show覆盖,super运行完成,显示初始化,再进行子类构造函数的运行 package com.monfolld; class Fu{ Fu(){ //2 show(); ...原创 2019-08-11 15:22:42 · 83 阅读 · 0 评论 -
Object类
Object:所有类的根类 Object是不断抽取而来,具备所有对象都具备的共性内容 常用的共性内容: equals Object中的equals方法是直接判断this和obj本身的值是否相等,即用来判断调用equals的对象和形参obj所引用的对象是否是同一对象,所谓同一对象就是指内存中同一块存储单元,如果this和obj指向的hi同一块内存对象,则返回true,如果this和obj指向...原创 2019-08-12 18:14:01 · 66 阅读 · 0 评论 -
面向对象_异常
概述 异常:是运行时期发生的不正常情况打。在java中用类的形式对不正常情况进行了描述和封装对象,描述不正常的情况的类,就称为异常类。以前正常流程代码和问题处理代码相结合,提高代码的阅读性。其实异常就是java通过面向对象的思想将问题封装成了对象。用异常类对其进行描述,不同的问题用不同的类进行具体描述,比如角标越界,空指针等等。 问题很多,意味着描述的类也很多,将其共性进行向上抽取,形成了异常...原创 2019-08-18 17:29:51 · 178 阅读 · 0 评论 -
多线程
概述 进程:正在进行中的程序 线程:就是进程中的一个负责程序执行的控制单元(执行路径) 多线程:一个进程中可以多执行路径 一个进程中至少有一个线程。开启多个线程是为了同时运行多部分代码。 每一个线程都有自己运行的内容,这个内容可以称为线程要执行的任务。 多线程好处:解决了多部分同时运行的问题 多线程的弊端:线程太多回到效率的降低 其实应用程序的执行都是cpu在做着快速的切换完...原创 2019-09-03 21:00:53 · 91 阅读 · 0 评论 -
装饰者模式(静态代理)
概念 在不改变原有对象的基础之上,将功能附加到对象上。提供了比继承更有弹性的替代方案(扩展原有对象功能) 适用场景 扩展一个类的功能或者给一个类添加附加职责 给一个对象动态的添加功能,或动态撤销功能。 优点 继承的有力补充,比继承灵活,不改变原有对象的情况下给一个对象扩展功能。 通过使用不同装饰类以及这些类的排列组合,可以实现不同的效果。 符合开闭原则 缺点 会出现更多的代码,更多...原创 2019-10-24 17:41:26 · 94 阅读 · 0 评论 -
线程间通讯
线程间通讯 多线程在处理同一资源,但任务却不相同。 示例 package com.monfolld; public class Resource { String name; String sex; } class Input implements Runnable{ Resource r; Input(Resource r){ this....原创 2019-11-06 18:43:29 · 77 阅读 · 0 评论