![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 62
java回忆录
爱窦
这个作者很懒,什么都没留下…
展开
-
freemarker的使用
1原创 2022-06-30 16:41:22 · 187 阅读 · 0 评论 -
CloseableHttpClient的使用
String content = null; try { // 创建CloseableHttpClient CloseableHttpClient client = HttpClientBuilder.create().build(); HttpPost httpPost = new HttpPost("请求地址");//地址 httpPost.setHeader("x-tif-paasid", paasId);//请求头 RequestConfig config = Re原创 2022-01-10 12:06:32 · 2269 阅读 · 0 评论 -
Java-JSON的使用
对象转json字符串: JSONObject.toJsonString(对象)json字符串转对象: JSONObject.parseObject(json字符串,对象.cLass);数组或者集合转json字符串:JSONArray.toJsonString(对象)json字符串转数组或集合: JSONObject.parseArray( json字符串,数组或集合中元素对象.cLass);数组、集合、JSON字符串之间的转换JSONArray继承与JSONpublic static void原创 2021-03-12 14:26:20 · 111 阅读 · 0 评论 -
JDBC的使用
本章学习目标JDBC简介JDBC原理连接数据库加载JDBC驱动程序创建数据库连接Connection接口创建Statement执行SQL语句处理返回结果关闭创建的对象操作数据库Statement -1Statement -2ResultSet -1结果集ResultSet -2ResultSet -3PreparedStatementCallableStatement-1CallableStatement-2事务操作分页策略小结-1小结-2Statement使用实例PreparedStatement使用实.原创 2021-03-03 19:50:07 · 200 阅读 · 1 评论 -
观察者模式
观察者模式实例总结本文内容转发自C语言中文网观察者模式模式的定义与特点观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。观察者模式是一种对象行为型模式,其主要优点如下。降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系。符合依赖倒置原则。目标与观察者之间建立了一套触发机制。它的主要缺点如下。目标与观察者之间的依赖关系并没有.转载 2021-02-23 18:57:57 · 67 阅读 · 0 评论 -
代理模式
代理模式的理解静态代理总结+例子动态代理jdk动态代理例子本文部分内容转发自C语言中文网静态代理代理模式的主要优点有:代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用;代理对象可以扩展目标对象的功能;代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度,增加了程序的可扩展性其主要缺点是:代理模式会造成系统设计中类的数量增加在客户端和目标对象之间增加一个代理对象,会造成请求处理速度变慢;增加了系统的复杂度;模式的结构代理模式的主要角色如下。抽象主题(Su转载 2021-02-23 18:40:11 · 151 阅读 · 0 评论 -
工厂方法模式
工厂方法三种模式工厂模式的优缺点1、简单工厂模式2、工厂方法模式3、抽象工厂模式文中内容转载于C语言中文网工厂模式的优缺点优点:用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程。灵活性增强,对于新产品的创建,只需多写一个相应的工厂类。典型的解耦框架。高层模块只需要知道产品的抽象类,无须关心其他实现类,满足迪米特法则、依赖倒置原则和里氏替换原则。缺点:类的个数容易过多,增加复杂度增加了系统的抽象性和理解难度抽象产品只能生产一种产品,此弊端可使用抽象工厂模式解转载 2021-02-22 19:22:49 · 220 阅读 · 0 评论 -
单例模式,解决单例破坏。
单例模式理解单例模式实现方法1、懒汉式单例2、饿汉式单例单例模式有 3 个特点:单例类只有一个实例对象;该单例对象必须由单例类自行创建;单例类对外提供一个访问该单例的全局访问点。单例模式的优点和缺点:单例模式的优点:单例模式可以保证内存里只有一个实例,减少了内存的开销。可以避免对资源的多重占用。单例模式设置全局访问点,可以优化和共享资源的访问。单例模式的缺点:单例模式一般没有接口,扩展困难。如果要扩展,则除了修改原来的代码,没有第二种途径,违背开闭原则。在并发测试中,单例模原创 2021-02-22 18:35:39 · 256 阅读 · 0 评论 -
java用jxl.jar.对excel的操作
jxl的使用创建文件写入数据读取数据创建文件 public static void main(String[] args) { File file = new File("C:\\Users\\Administrator\\Desktop\\aa\\student.xls"); try { //创建一个excel工作簿文件 WritableWorkbook wwb = Workbook.createWorkbook(f原创 2021-02-22 11:51:36 · 129 阅读 · 0 评论 -
java反射
学习目标Java 语言的反射机制Java Reflection API 简介实例方法掌握通过反射获得类名掌握通过反射实例化其他类的对象掌握通过反射获得其他类中的全部构造函数掌握获得其他类中的全部属性掌握调用其他类中的方法掌握通过反射操作属性掌握通过反射取得数组的信息Java 语言的反射机制在Java运行时环境中,对于任意一个类对象,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言原创 2021-02-11 19:20:47 · 69 阅读 · 0 评论 -
Timer定时器
定时器的使用定时器的作用定时器任务(TimerTask)举例说明定时三秒后打印定时五秒后打印,每隔一秒打印一次指定日期打印总结:定时器的作用1) 可以安排自动的计划任务的类, 每个任务都是一个线程 2) 创建Timer 实例 3) 为Timer 实例增加计划任务, 计划任务是一个接口 4) 使用cancel() 清除timer 对象上所有计划任务 定时器任务(TimerTask) 1)它是一个抽象类; 2)要通过子类覆盖run()方法; 3)它的子类实现要作为一个参数传给定时器; 4原创 2021-02-04 19:29:01 · 309 阅读 · 0 评论 -
Socket编程和IO处理
SocketSocket学前了解TCP协议UDP协议TCP与UDP的应用场合什么是Socket?Socket通讯的过程注意Socket网络模型Server服务器端Socket学前了解TCP协议TCPTCP是Tranfer Control Protocol的 简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待原创 2021-02-04 19:20:31 · 552 阅读 · 0 评论 -
Properties的使用
Properties写文件的都是键值对数据操作方法将键值对写入properties文件当中读取properties的数据将键值对写入xml文件中读取xml的数据将键值对写入properties文件当中写入的数据都是键值对数据public class TT { public static void main(String[] args) throws IOException { Properties p = new Properties();//创建Properties对象原创 2021-02-02 13:06:49 · 204 阅读 · 0 评论 -
抽象类abstract class,接口interface
抽象类1、抽象类一般没有足够的信息来描述一个具体的对象,抽象类只用于继承,不能用于创建对象。2、一个抽象类一般(不是必须)包括一个或多个抽象方法(只有方法说明,没有方法体)。3、抽象类的子类必须实现其父类定义的每一个抽象方法,若没有实现父类的所有抽象方法,则该子类也应该定义为抽象类.抽象类abstract修饰,其格式是:abstract class 类名{类成员定义}抽象类包含的方法应该(非必须)有一个是抽象方法。继承抽象类的非抽象子类必须覆盖父类中定义的抽象方法。抽象方法用abstr原创 2021-02-01 17:28:01 · 95 阅读 · 0 评论 -
正则表达式Matcher、Pattern、String对正则表达式的使用
[1234] 表示 1,2,3,4 之一[^12] 表示除了 1,2[1-5] 表示 1,2,3,4,5[a-f] 表示 a-f 之间的[0-9a-fA-F] 表示一个16进制字符0[xX][0-9a-fA-F]{1,8} 表示整数的16进制数表达式[\w-]{8,15} 表示8-15个字母、下划线、数字及“-”\d 表示[0-9]“.”点 表示任意字符\w 表示单个字符 [0-9a-zA-Z_] 注:包含下划线“”\W (不常用)表示非单词字符 [^0-9a-zA-Z]原创 2021-02-01 17:19:41 · 311 阅读 · 0 评论 -
String字符串StringBuilder、StringBuffer
String类:数据+相关的操作,即char[ ]+操作■ char数组只是数据,没有操作■ 一串字符就是字符串:char[]、String、StringBuilder■ 字符串的”字面量“(也叫直接量),都是String类型实例■ “字符串常量”: static final修饰的变量public static final String TYPE = “car” //TYPE被称为常量,“car”是字面量■ String在Java内部就是一个char[]String API 有一个..原创 2021-02-01 17:11:21 · 138 阅读 · 0 评论 -
Object
java 类默认继承于Object,用一句话形容就是:“啥都是东西”。Java类继承了Object的所有属性和方法,如: toString(), hashCode(), equals()toString() 方法■ 经常由系统默认调用,是当前对象的文本描述■ Object默认返回值: 全限定名@hashCode■ 建议覆盖为: 当前对象的文本描述equals()方法用来比较两个对象是否相等的方法比较对象分为两种:“引用相等”和“对象相等”■ 比较引用值是否相等: “==原创 2021-02-01 16:57:40 · 72 阅读 · 0 评论 -
包装类和内部类
包装类的使用与内部类的构造和使用1、包装类2、局部内部类3、静态内部类成员内部类匿名内部类匿名内部类接口形式总结1、包装类包装类可以把基本类型包装为对象类型。共有8种包装类int Integerlong Longbyte Byteshort Shortfloat Floatdouble Doubleboolean Booleanchar Character**1、Integer常用方法Integer的缓存为-128~127,在这个值范围内的Integer对象只要值相等,相当于地原创 2021-02-01 16:47:58 · 145 阅读 · 0 评论 -
异常的声明,自定义异常,try catch finally
异常大概指的是:在语法上合理,在运行计算时不合理且会中断程序的执行的例外。异常举例举个简单的例子:除0异常int a = 1/0;运行报错 程序无法继续执行Exception in thread “main” java.lang.ArithmeticException: / by zero捕获异常try{}表明哪里会出现异常,catch(e){},捕获到的异常类型和处理方式,finally{}表示最后一定会执行的部分用try catch finally 来捕获和处理异常try {int原创 2021-02-01 14:37:17 · 294 阅读 · 0 评论 -
Date的使用与格式化
Date的使用创建对象获取从1970-01-01 00:00:00到date的秒数设置在Date经过了多少秒与new Date(1000l)相似将字符串转换成Date将Date格式化输出时间字段字母 日期或时间元素 表示 示例G Era 标志符 Text ADy 年 Year 1996; 96M 年中的月份 Month July; Jul; 07w 年中的周数 Number 27W 月份中的周数 Number 2D 年中的天数 Number 189原创 2021-02-01 13:53:51 · 1027 阅读 · 0 评论 -
Calendar
Calendar的使用Calendar字段对象获取Calendar按年月日字等段输出Calendar设置指定时间Calendar转换为DateDate转换为CanlendarCanlendar转换为秒CalendarA按照字段求取所需的最大天数,周数等修改Calendar的时间add()方法Calendar字段static int ALL_STYLES指示所有风格名称的 getDisplayNames 的风格说明符,比如 “January” 和 “Jan”。static int AM指示从午夜到中原创 2021-02-01 13:32:02 · 140 阅读 · 0 评论 -
数组和集合的相互转换
数组和集合的相互转换 /** * 数组转集合 */ String[] a ={"aaa","bbb","ccc","ccc"}; List<String> list = Arrays.asList(a);//只读不可写 System.out.println(list); ArrayList<String> list1 = new ArrayList<>(li原创 2021-01-29 08:57:17 · 193 阅读 · 0 评论 -
IO流
字节流是指8位(1字节)的通用字节流,以字节为基本单位,在java.io包中,对于字节流进行操作的类大部分继承于InputStream(输入字节流)类和OutputStream(输出字节流)类;字符流是指16位(2字节)的Unicode字符流,以字符(两个字节)为基本单位,非常适合处理字符串和文本,对于字符流进行操作的类大部分继承于Reader(读取流)类和Writer(写入流)类。FileInputStream指定文件打开输入流对象 读取文件内容 一次读取一个字节 文件指针指向末尾返回-1一次读取原创 2021-01-28 20:32:28 · 67 阅读 · 1 评论 -
File
File方法 File file = new File("C:\\Users\\Administrator\\Desktop\\aa\\date.txt"); File dir = new File("C:\\Users\\Administrator\\Desktop\\aa\\b"); if (!file.isDirectory()){ try { System.out.println("文件是否创原创 2021-01-28 15:34:35 · 493 阅读 · 0 评论 -
集合的求和、最大值、最小值、平均值、过滤、排序、去重、分组
流的操作数据求和最大值最小值最小值过滤排序基本数据 ArrayList<Student> lists = new ArrayList<>(); lists.add(new Student("张三", 15, 1541)); lists.add(new Student("李四", 19, 1549)); lists.add(new Student("王五", 55, 1543)); lists.add(n原创 2021-01-28 14:29:12 · 1238 阅读 · 0 评论 -
Iterator
Iterator执行一次next()操作迭代器指向下一个元素,不执行next()操作hasNext()依然会保留在原来的指向,迭代器执行完指针不能重第一个元素开始指向,除非去生成一个新的迭代器。迭代器 指向 list的地址 对迭代器的操作就是对list的操作。常用方法boolean hasNext()如果仍有元素可以迭代,则返回 true。E next()返回迭代的下一个元素。void remove()删除当前指针指向 ArrayList<String> lis原创 2021-01-28 11:20:43 · 58 阅读 · 0 评论 -
HashTable ConcurrentHashMap HashMap LinkedHashMap
HashSet 存储无序的 数值不唯一的数据放入新元素时,先用该元素的hashCode值跟每个元素的hashCode值做比较,如果不相等则直接放入集合中,如果相等则用equals()方法比较,如果equals()得到的值相等则不添加该元素,不相等则将该元素添加到其他地址(得到新的hashCode值)。注意:放入的对象要重写equals()和hashCode()方法常用方法boolean add(E e) 如果集合中不存在该元素则添加,否则返回falsevoid clear() 从此 set 中移原创 2021-01-27 19:47:39 · 140 阅读 · 0 评论 -
ArrayList LinkedList TreeSet HashSet
LinkedList基本函数常用方法LinkedList基本函数1、添加元素到列表的方法2、从列表中获取元素3、移除元素1、添加元素到列表的方法boonleaf add(E e) 将指定元素添加到此列表的结尾。void add(int index, E element) 在此列表中指定的位置插入指定的元素。void addFirst(E e) 将指定元素插入此列表的开头。void addLast(E e) 将指定元素添加到此列表的结尾。boolean offer(E e) 在尾部添加元素原创 2021-01-27 13:27:02 · 185 阅读 · 0 评论 -
LocalDateTime
LocalDateTime 基本使用 //获取 LocalDateTime 对象 时间为系统当前时间精确到毫秒 LocalDateTime now = LocalDateTime.now(); System.out.println(now); //格式化输出 SSS 代表毫秒 格式化输出DateTimeFormatter的格式化语句必须精确到秒 DateTimeFormatter dtf = DateTimeFormatte原创 2021-01-26 20:18:30 · 872 阅读 · 0 评论