Java基础
文章平均质量分 54
JunSouth
这个作者很懒,什么都没留下…
展开
-
HttpClinet
package com.example.demo;import com.alibaba.fastjson.JSONObject;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.config.RequestConfig;import org.apache.http.cl.原创 2021-02-24 18:07:41 · 228 阅读 · 0 评论 -
浅谈多线程的数据处理工具(2020-11-29)
阻塞队列BlockingQueue常见方法 方法名 描述 返回值 add() 队尾添加元素,成功返回 true ,失败抛出异常。 boolean offer() 队尾新添加元素。返回true表示添加成功,false表示添加失败,不会抛出异常(可延时操作)。 boolean put() 向队列末尾新添加元素,如果队列已满,当前线程就等待(阻塞线程),响应中断异常。 void remove() 移除头部元素,如果为null则抛出异常,也原创 2020-08-19 16:27:57 · 255 阅读 · 0 评论 -
浅谈线程池
线程池优点降低资源消耗:通过池化技术重复利用已创建的线程,降低线程创建和销毁造成的损耗。 提高响应速度:任务到达时,无需等待线程创建即可立即执行。 提高线程的可管理性:线程是稀缺资源,如果无限制创建,不仅会消耗系统资源,还会因为线程的不合理分布导致资源调度失衡,降低系统的稳定性。使用线程池可以进行统一的分配、调优和监控。 提供更多更强大的功能:线程池具备可拓展性,允许开发人员向其中增加更多的功能。比如延时定时线程池ScheduledThreadPoolExecutor,就允许任务延期执行或定期执行原创 2020-08-17 18:02:14 · 184 阅读 · 0 评论 -
JunSouth集合小结
常用方法List接口有序,能够使用索引(元素在List中的位置)来访问List中的元素,类似数组。实现List接口的常用类有ArrayList、LinkedList、Vector和Stack。List使用场景需要快速插入,删除元素,应该使用LinkedList。需要快速随机访问元素,应该使用ArrayList。对于“单线程环境” 或者 “多线程环境,但List仅仅只会被单个线程操作”,此时应该使用非同步的类(如ArrayList)。ArrayList类(线程不安全)ArrayL..原创 2020-08-13 17:33:20 · 154 阅读 · 0 评论 -
java后端调用百度地图
百度官方API地址http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-placeapi单个地址查询返回信息用Map封装转换JSON实体类public class SingleAddressBean { private String area; private String uid; private String address; private String province;原创 2020-07-22 14:41:18 · 3459 阅读 · 2 评论 -
日常使用自定义工具类
字符串处理import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;import java.util.stream.IntStream;public class MyStringUtils { public ...原创 2020-05-02 17:57:39 · 322 阅读 · 0 评论 -
HttpServletRequest + HttpServletResponse + poi-ooxml+SpringBoot异步
HttpServletResponse、HttpServletRequestWeb服务器收到每一次http请求,都会创建一个request对象、response对象。request: 获取客户机提交过来的数据。response: 向客户机输出数据。四大作用域从小到大顺序为:page request session applicationpage: ...原创 2020-03-08 23:23:57 · 650 阅读 · 0 评论 -
行为型设计模式(责任链、命令、迭代器、中介者、备忘录、观察者、状态、策略、模板、访问者)
责任链模式把请求放在链上,到谁谁来处理,自己干不了,就让下一位上。// 请求类public class Request { private int type = 0; // 请求类型 private float price = 0.0f; // 请求金额 private int id = 0; // 构造器 public Request(int type, float pri...原创 2019-12-06 16:26:56 · 309 阅读 · 0 评论 -
结构型设计模式(适配器、桥接、组合、装饰、外观、享元、代理)
适配器模式像变压器一样,可把不匹配变的匹配。类适配器模式public static void main(String[] args) { System.out.println(" === 类适配器模式 ===="); Phone phone = new Phone(); phone.charging(new VoltageAdapter());}public class P...原创 2019-12-06 16:18:14 · 155 阅读 · 0 评论 -
创建型设计模式(单例、工厂、建造者、原型)
七大设计原则开闭原则一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。依赖倒置原则(面向接口编程)模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的。接口或抽象类不依赖实现类,实现类依赖接口或抽象类。单一职责原则一个类、接口、方法只负责一项职责或职能。接口隔离原则客户端不需要多余的接口,一个类对另一个类的依赖建立在最小的接口...原创 2019-12-06 16:10:26 · 176 阅读 · 0 评论 -
多线程之观察者模式
观察监视某个主题的状态,通知其他监视者。//主题对象(被观察的对象)public class Subject { //观察者集合 private List<Observer> observers = new ArrayList<>(); //设置状态变化的标识 private int state; //将观察者加入集合中 ...原创 2019-07-20 19:33:02 · 598 阅读 · 0 评论 -
多线程之Single Threaded Execution design pattern(单线程执行设计模式)
一次只让一个线程进入public class Userr extends Thread { private final String myname; private final String myaddress; private final Gate gate; public Userr(String myname,String mya...原创 2019-07-20 20:51:48 · 275 阅读 · 0 评论 -
CompletableFuture小结
Future有一些弊端。比如get时会阻塞线程,线程完成顺序不好控制,拿取结果时容易浪费时间资源等。在 1.8之前,ExecutorCompletionService 也可以完成一些类似工作。CompletableFuture 里的线程是守护线程,关闭主线程即可关闭 CompletableFuture 的线程。CompletableFuture里的方法众多,且多返回Future,可重复、组合...原创 2019-09-03 20:43:55 · 496 阅读 · 0 评论 -
多线程之Future设计模式
/** * Future --> 代表的是未来的一个凭据 * FutureTask --> 将你的调用逻辑进行了隔离 * FutureService --> 桥接 Future和 FutureTask */public class SyncInvoker { public static void main(String[] ar...原创 2019-09-11 12:27:48 · 150 阅读 · 0 评论 -
Spring事务+JDBC小结
数据库事务原子性: 多个操作组成最小不可分割单元。一致性: 操作成功后,数据库的状态和业务规则是一致的。隔离性: 并发数据处理时,相互不干扰。持久性: 一旦事物提交成功后,数据的操作被记入库中。数据库并发问题脏读:读取不可靠的数据(数据被回滚了),Oracle不会发生脏读情况。不可重复读:同一事务中两次读取数据有差异(数据被别的事务修改、删除)。幻象读:A事务读到B事务提交的新数据,导...原创 2019-10-05 19:02:24 · 220 阅读 · 0 评论 -
浅谈多线程(2020-11-29)
线程的创建1.继承Thread重写run()方法。2.new Thread()传入Runnable。3.线程池,传入Runnable或Callable。看到很多人说实现Runnable接口、匿名内部类。我觉得那些都不是。线程的构造1.构造线程对象Thread,默认一个线程名,以Thread-开头,从0开始计数。Thread-0、Thread-1.....2.如果在构造Thread...原创 2019-07-19 19:24:00 · 235 阅读 · 0 评论 -
数据库连接池小结
简介1、建立数据库连接池对象(服务器启动)。2、按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。3、对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。4、存取数据库。5、关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实...原创 2019-02-20 16:34:37 · 651 阅读 · 1 评论 -
Java之String、数组、Iterator小结
创建String字符串Stringgreeting="JunSouth";前言Java虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。JVM主要管理堆和非堆两种类型内存简单来说,非堆包含方法区、JVM内部处理或优化所需的内存(编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码。Java的堆是一个运行时数据区,类的对...原创 2019-02-15 16:23:32 · 610 阅读 · 0 评论 -
Maven小结
Maven安装与配置Maven 下载:http://maven.apache.org/download.cgi首先要确定 jdk 已经安装和配置把 maven 解压到放到 E 盘配置 maven文件夹中环境变量:M2HOME E:\maven\apache-maven-3.3Maven 常见命令Mvn compile 编译Mvn clean 清空Mvn test 测试...原创 2019-03-03 23:59:11 · 187 阅读 · 0 评论 -
IO流
IO流流的本质是数据传输,根据数据传输特性将流抽象为各种类。根据处理数据类型分为:字符流和字节流根据数据流向分为:输入流和输出流字符流的由来:因为数据编码的不同,而有了对字符进行高效操作的流对象,本质基于字节流。区别字节流以字节(8bit)为单位;字符流以字符为单位。字节流能处理所有类型的数据(如图片、avi等);而字符流只能处理字符类型的数据。字节流在操作的时不会用到缓冲...原创 2019-05-20 23:26:46 · 157 阅读 · 0 评论 -
Junit单元测试小结
Junit4的注解@Before 初始化方法 @After 释放资源 @Test 测试方法,在这里可以测试期望异常和超时时间 @Ignore 忽略的测试方法 @BeforeClass 针对所有测试,只执行一次,且必须为static void @AfterClass 针对所有测试,只执行一次,且必须为static void @RunWi...原创 2019-04-07 23:35:49 · 361 阅读 · 0 评论