- 博客(155)
- 收藏
- 关注
原创 2022 第一篇 单例模式的所有写法及其优缺点
单例模式的特点:1、构造器私有化(无法再new一个新的对象,保证对象唯一)2、类内部创建对象(static)3、对外公开一个获取该对象的方法单例模式从设计层面保证了一个类只有一个实例对象,并且只提供一个获取对象的静态方法实现单例模式一共有8种方式,其中6种是可以使用的方式:1、静态常量的饿汉式class Singleton{ private Singleton(){} private final static Singleton instance = new Singleton(); p
2022-02-28 21:43:28
259
原创 Java11手动生成jre命令
bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
2021-11-08 12:56:42
683
原创 ACWING 99 激光炸弹
首先能看出来是个二维前缀和有几个细节:1、r如果比5000大,要特判2、r如果比你给的所有坐标都要大,那么要处理一下,也就是要你row和col都大于r才能求解,所以一开始row和col的最小值要设置成r,...
2021-10-15 12:52:39
208
原创 HDU - 1003 Max Sum (两种做法:DP和分治)
首先介绍分治的方法:在分治求最大连续和的过程中,维护一个区间,找到最大连续和的时候就替换区间#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>using namespace std;const int MAXN = 100000+10;typedef struct node { int l, r; int w;}Num;Num num
2021-10-13 14:26:15
120
原创 UVA1663/ POJ - 2724 Purifying Machine(二分图)
题目比较巧妙,给了一堆模板串,*可以被替换成0/1,经过替换可以得到一堆01串,问你能不能减少模板串,比如:*01100011这三个模板串可以得到四个串 001 101 100 011 ,但是这四个串实际上可以由 10–和0–1两个模板串得到。这题有两个点,一个是二分图建图问题和二分图匹配问题首先不容易想到是二分图(多做一些可能就能容易点),那么如何二分图建图呢,我们可以将同一个模板得到的两个字符串进行连线,这样进行匹配的时候,一条连线就是一个匹配,就是一个模板串。建图的一个巧妙方法使用位运
2021-10-13 13:31:43
100
原创 洛谷P1908 逆序对(两种解法树状数组和归并排序)
树状数组之后补充归并排序归并排序使用分治的方法,复杂度nlogn,观察合并时,在合并两个数组时,若添加的是右边数组中的元素,那么就知道左边数组剩余m-p个元素都比他大(假设从小到大排序,左边要是更小就添加左边了),那我们就知道有 m-p的逆序对(m-p个数分别和右边添加的元素是一个逆序对),如下为一个归并排序的核心代码void d_sort(int* num, int x, int y, int* res) { if(x+1>=y) return; int m = x+(y-x)
2021-10-13 09:42:42
214
原创 CodeForces - 687A NP-Hard Problem
题意大致是将图中的点划分为两部分,就是求问二分图,输出划分成二分图的两部分分别是什么。数据量稍微大一点,使用邻接表或者链式前向星存储。算法实现过程大概如下划分:实现前向星存储二分图染色判定结果输出存储和输出没什么问题,输出也没有固定要求,答案不唯一,在判定的过程中有如下坑点:图可能不是连通图,有的点连不上,因此不能仅从某一个点出发做一次DFS,要从每个点都出发。第一个数据虽然存在4这一个孤立点,但是从1出发依然能得到一个符合题意的答案,所以第一个数据检验不出这个坑点正确写法如下:#i
2021-10-12 13:50:35
156
原创 爬虫---Session和Cookies
静态网页和动态网页静态网页缺点:无状态HTTP也就是缺少状态记录。Session和CookiesSession而在 Web 中,Session对象用来存储特定用户 Session所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session对象中的变量将不会丢失,而是在整个用户 Session中一直存在下 去。当用户请求来自应用程序的 Web 页时,如果该用户还没有 Session,则 Web 服务器将自动创建一个 Session对象。当 Sessio
2021-10-07 19:22:44
120
原创 HTTP基本原理
HTTP请求包括四部分:请求方法请求网址请求头请求体请求方法:主要有Get、PostGET - 从指定的资源请求数据。POST - 向指定的资源提交要被处理的数据。其他的请求方法:请求的网址(URL)请求头:用来说明服务器要使用的附加信息,包括Cookie、Referer、User-Agent。部分信息介绍如下:请求体:请求体一般承载的内容是POST请求中的表单数据,而对于GET请求,请求体则为空。content-Type和POST提交数据之间的关系爬虫中,若要构
2021-10-07 16:31:50
475
原创 JDBC c3p0连接池
driver: libs下c3p0XXXX.jar : libsc3p0.xml:src下<c3p0-config> <!-- 数据源名称代表连接池 --> <named-config name="hello"> <!-- 驱动类 --> <property name="driverClass">com.mysql.jdbc.Driver</property> <!-- url--> <pr
2021-09-08 10:05:16
118
原创 linux命令 查找搜索 压缩解压
find指令find [搜索范围] [选项]find指令从指定目录向下递归遍历其各个子目录,将满足条件的文件或目录显示在终端locate指令which指令which指令,可以查看某个指令在哪个目录下;例如:which ls...
2021-07-02 08:22:47
146
原创 MySQL 基本使用
1、创建数据库CREATE DATABASE [IF NOT EXISTS] db_name CHARACTER charset_name COLLATE collate_name;IF NOT EXISTS 可以省略CHARACTER表示字符集,默认utf8COLLATE为校验规则,例如utf8_bin表示区分大小写2、查询数据库显示数据库 : SHOW DATABASES;显示数据库创建语句:SHOW CREATE_DATABASE db_name;其中,创建数据库/表的时候,为
2021-06-16 10:20:15
97
原创 Java IO流
创建文件三种方式:public class FileCreate { public static void main(String[] args) { }// 创建文件1 @Test public void create01() { String filePath = ".\\news1.txt"; File file = new File(filePath); try { //根绝路径
2021-06-05 11:25:40
269
2
原创 Java 线程
创建线程的两种方式在Java中线程的使用有两种方法:继承Thread类,重写run方法实现Runnable接口,重写run方法当main线程启动一个子线程 Thread-0, 主线程不会阻塞, 会继续执行关于start()方法和run()方法public class Thread01 { public static void main(String[] args) throws InterruptedException { //创建Cat对象,可以当做线程使用
2021-05-27 16:21:21
155
1
原创 Java事件处理机制
Java事件处理采取"委派事件模型"。当事件发生时,产生事件的对象,会把此“信息”传递给“事件的监听者”进行处理。这里的“信息”实际上是java.awt.event事件类库里某个类所创建的对象,把它称为“事件的对象”。事件源:事件源是一个产生事件的对象,比如按钮、窗口事件:事件就是承载事件源状态改变时的对象,比如当键盘事件、鼠标事件、窗口事件等等,会生成一个事件对象,该对象保存着当前事件很多信息,比如KeyEvent对象有含有被按下的Code值。java.awt.event包和javax.swing.
2021-05-22 07:37:09
263
原创 Java绘图技术
绘图原理Component类提供了两个和绘图相关最重要的方法paint(Graohics g)绘制组件的外观repaint() 刷新组建的外观当组件第一次在屏幕显示的时候,程序会自动地调用paint()方法来绘制组件。在以下情况paint()将会被调用:窗口最小化,再最大化窗口的大小发生变化repaint函数被调用...
2021-05-21 10:35:57
117
原创 Java 泛型
不使用泛型的问题举例:不能对加入集合ArrayList中的数据类型进行约束(不安全)便利的时候,需要进行类型转换,如果集合中的数据量较大,对效率有影响public class Generic01 { public static void main(String[] args) { //使用传统的方法来解决 ArrayList arrayList = new ArrayList(); arrayList.add(new Dog("旺财", 1
2021-05-19 16:09:28
231
1
原创 Java LIst集合全解
集合的优势:(1)数组存储的不足与缺陷:长度开始必须执行,而且一旦指定,无法修改 保存的必须为同一类型的元素 使用数组进行增加/删除操作比较麻烦(2)集合的好处:可以动态保存多个对象,使用方便 提供了一系列方便的操作对象的方法,如add、remove、set、get等 使用集合增加/删除较方便集合的框架图 (重要)集合主要是两组:单列集合、双列集合Collection接口有两个重要的子接口List、Set,他们的实现子类都是单列集合Map接口的实现子类是双列集合,存放K-
2021-05-18 20:46:51
21963
2
原创 Java TreeSet和TreeMap
TreeSet和TreeMap 1. 当我们使用无参构造器,创建TreeSet时,仍然是无序的 2. 老师希望添加的元素,按照字符串大小来排序 3. 使用TreeSet 提供的一个构造器,可以传入一个比较器(匿名内部类) 并指定排序规则TreeSet:当我们使用无参构造器,创建 TreeSet 时,默认调用添加对象的类的Compareto方法进行排序,如果传入的Key对象没有实现Comparable接口,会抛出classCastException。比如:传入的Key为St
2021-05-18 14:39:38
239
原创 Java Set集合详解
Set接口基本介绍:1)无序(添加和取出顺序不一致),没有索引2)不允许重复元素,最多只能有一个 null3)其实现类如下:Set接口常用方法:和List接口一样,Set接口也是Collection的子接口,因此,常用方法和Collection接口一样Set接口的遍历方式:和Collection的遍历方式一样,1)可以使用迭代器,2)增强for 3)不能使用索引的方式来获取public class SetMethod { public static ...
2021-05-14 08:19:04
694
3
原创 Java LinkedList
LinkedList的说明:LinkedList底层实现了双向链表和双端队列的特点 可以添加任意元素(可以重复), 包括null 线程不安全,没有实现同步LinkedList底层机制LinkedList底层维护了一个双向链表 LinkedList中维护了两个属性first和last分别指向首节点和尾节点 每个节点(Node对象),里面又维护了prev、next、item三个属性,其中prev指向前一个,通过next指向后一个节点,最终实现双向链表 所以LinkedList的元素添加和删除
2021-05-12 08:26:03
212
原创 Java 日期类
Date日期类:public static void main(String[] args) throws ParseException { /** * 1、获取当前系统时间 * 2、这个Date类是在java.util包 * 3、默认输出的日期格式是国外的格式,因此通常需要对格式进行转换 */ Date d1 = new Date(); System.out.println("ti
2021-05-07 18:45:55
100
原创 Java String StringBuffer StringBuilder
(三)StringBuilderpublic class StringBuilder01 { public static void main(String[] args) { //老韩解读 //1. StringBuilder 继承 AbstractStringBuilder 类 //2. 实现了 Serializable ,说明StringBuilder对象是可以串行化(对象可以网络传输,可以保存到文件) //3. String
2021-04-26 17:24:32
89
原创 Java String StringBuffer StringBuilder
(二)StringBufferjava.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删。很多方法和String相同,但是StringBuffer是可变长度的StringBuffer是一个容器public class StringBuffer01 { public static void main(String[] args) { //老韩解读 //1. StringBuffer 的直接父类 是 AbstractStrin.
2021-04-26 13:10:26
242
原创 Java String StringBuffer StringBuilder
(一)String(1)String对象用于保存字符串,也就是一组字符序列(2)字符串常量对象是用双引号括起来的字符序列(3)字符串的字符使用Unicode编码,一个字符占两个字节(4)String类常用构造器:String s1 = new Stirng();String s2 = new String(String original);String s3 = new String(char[] a);String s4 = new String (char[] a, int.
2021-04-26 12:23:25
126
原创 Java 异常
Java异常: 程序执行中发生的不正常情况称为“异常”(开发过程中的语法错误和逻辑错误不是异常)执行过程中所发生的异常事件可分为两类:(1)Error(错误):Java虚拟机无法解决的严重问题,比如:JVM系统内部错误、资源耗尽、栈溢出和OOM等情况。Error是严重错误,程序会崩溃(2)Exception:其他因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如空指针访问,读取不存在的文件,网络连接中断等情况。Exception分为两大类:运行时异常(程序运行时发生的
2021-04-25 22:10:46
122
原创 Java注解
说明:@interface 不是 接口,是注解类,是jdk5.0之后加入的1、@Override(1)@Override表明指定重写父类的方法(2)不写@Override注解,扔可构成重写.若写了@Override而不构成重写,则报错(3)@Override只能修饰方法,不能修饰属性、类、包等(4)@Override注解的源码为:@Target(ElementType.METHOD),说明只能修饰方法(5)@Target是修饰注解的注解,称为元注解2、@Deprecate...
2021-04-23 22:47:14
74
原创 Java 枚举 enum
1、当使用enum关键字设计一个枚举类,默认会继承Enum类,而且是一个final类2、必须知道调用的是哪个构造器3、如果使用无参构造器创建枚举对象,那么实参列表和小括号都可以省略4、当有多个枚举对象时,使用”,“间隔,最后一个分号结尾5、枚举对象必须放在枚举类的第一行6、枚举类不可以再继承其他的类,但可实现接口7、enum的静态方法values()会返回一个enum数组8、使用==判断两个枚举对象实例是否相等Enum常用方法:为什么enum可以使用==判断相等:
2021-04-23 22:20:21
152
原创 Java内部类
类的五大成员:属性、方法、构造器、代码块、内部类内部类:一个类的内部又完整地嵌套了另一个类结构,嵌套的类称为内部类、被嵌套的类称为外部类。内部类最大的特点:可以直接访问私有属性,并且可以体现类与类之间的包含关系基本语法:...
2021-04-23 20:15:33
245
原创 Java 接口
在接口中,抽象方法可以省略abstract细节:1)如果一个类 implements 一个接口,必须将该接口的所有抽象方法都实现2)接口不能被实例化3)接口中所有的方法都是public方法,接口中抽象方法可以不用abstract修饰4)一个普通类实现接口,就必须将该接口的所有方法都实现5)抽象类实现接口,可以不实现接口的抽象方法6)一个类可以同时实现多个接口7)接口中的属性,只能是final的,而且是public static final8)接口中属性的访问形式..
2021-04-22 17:31:26
427
原创 Java设计模式-----模板设计模式
public class Test { public static void main(String[] args) { Template aa = new AA(); aa.calculateTime(); BB bb = new BB(); bb.calculateTime(); }}public class AA extends Template{ @Override public void..
2021-04-22 11:09:55
89
原创 Java 抽象类细节
抽象类:1)用abstract 关键字来修饰一个类的时候,这个类是抽象类 :访问修饰符 abstract 类名{ }2)用abstract关键字来修饰一个方法时,这个方法就是抽象方法:访问修饰符 abstract 返回类型 方法名 (参数列表); //没有方法体3) 抽象类的价值更多作用是在于设计,是设计者设计好后,让子类继承并实现。4)抽象类在框架和设计模式使用较多抽象类细节:1)抽象类不可被实例化2)抽象类不一定要包含abstract方法,也就是..
2021-04-22 10:51:11
115
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人