![](https://img-blog.csdnimg.cn/50beed37f22e40dc8b38ac487bf567c9.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java散文
文章平均质量分 55
Java基础知识
暴躁的程序猿啊
不是大佬,只是在分享学习的过程
展开
-
【使用JDK11自带http客户端发送POST请求】
使用JDK11自带http客户端发送http请求原创 2024-03-21 19:30:54 · 223 阅读 · 0 评论 -
【使用JDK11自带http客户端发送GET请求】
使用JDK11字段http客户端发送http请求原创 2024-03-18 21:01:00 · 391 阅读 · 0 评论 -
【Java自定义线程池实现异步计算】
当我们编写的后台方法中有大量 互相之间不影响的计算等复杂任务的时候 我们可以考虑使用自定义线程池使用Java的异步方法实现 并行处理提高相应速度原创 2024-03-18 20:48:02 · 479 阅读 · 0 评论 -
Nginx入门
Nginx的入门配置原创 2022-03-13 10:57:38 · 2260 阅读 · 0 评论 -
JSON简单入门
Json的简单入门原创 2022-03-07 10:19:12 · 786 阅读 · 0 评论 -
logback的简单使用
LogBack的入门使用原创 2022-02-25 10:41:38 · 6210 阅读 · 0 评论 -
Log4J日志框架
Log4J框架简单使用原创 2022-02-21 10:54:13 · 761 阅读 · 0 评论 -
Java项目版本错误
版本匹配小错误原创 2022-02-04 17:32:22 · 433 阅读 · 0 评论 -
El表达式&JSTL标签库
El表达式&JSTL标签库El表达式的全称是:Expression Language 是表达式语言作用:EL表达式主要是替代Jsp页面中的表达式脚本在Jsp页面中进行数据的输出;页面中开启el表达式支持<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false" %><body> <% request.setAttri原创 2022-01-30 17:09:40 · 1368 阅读 · 0 评论 -
Java并发学习笔记(一)
Java并发编程学习笔记(一)原创 2022-01-24 17:30:29 · 244 阅读 · 0 评论 -
JavaWeb复习
JavaWeb的概念JavaWeb是指通过java语言编写可以通过浏览器访问的程序的总称叫javaweb原创 2022-01-17 17:47:59 · 993 阅读 · 0 评论 -
一文XML简单入门
XML简单入门原创 2022-01-14 17:53:58 · 496 阅读 · 4 评论 -
JDBC操作mysql数据库
JDBC查询操作原创 2022-01-01 12:02:54 · 662 阅读 · 0 评论 -
Java8新特性Stream流之匹配与查找
Java Stream流的使用原创 2021-12-27 11:45:39 · 2805 阅读 · 0 评论 -
Java字节流读取写出文件
操作非文本文件 图片视频等等public class Test13 { public static void main(String[] args) { FileInputStream inputStream = null; FileOutputStream outputStream = null; //输入流 try { //参数传入文件位置 inputStream = new Fi原创 2021-11-08 18:50:25 · 563 阅读 · 0 评论 -
List集合中泛型使用细节
list泛型类型我们来看一段代码 public void test(){ Object o=null; String str1=null; //多态表现 父类的引用接收子类的对象 o=str1; }但是下面这样的代码是不能赋值的 public void test(){ List<Object> list1=null; List<String> list2=null;原创 2021-10-02 13:39:24 · 2103 阅读 · 0 评论 -
Java8新特性之时间
JAVA8新特性时间LocalDate LocalTime LocalDateTime是不可变对象 使用ISO-8601日历系统ISO-8601是国际标准化组织制定的现代公民的日期和时间的表示法获取当前时间日期public class TestLocalDateTime { //1.localDate 日期 LocalTime时间 LocalDateTime日期和时间 public static void main(String[] args) { Lo原创 2021-08-14 16:18:19 · 388 阅读 · 0 评论 -
位运算判断奇数偶数
我们需要用到java中的&运算符&符号 对两个数的二进制形式进行按位与, 位数中有0结果为零;例子:15&3=?例: 1111 0011运算 1111 0011结果 0011 一个数的二进制形式 末尾是1一定是奇数比如我们的5:二进制形式0101 = 1x2^0 +1x2^2 = 5 1x2^2 一定是偶数 因为都是2的倍数 当我们1x2^1 2的原创 2021-08-05 16:49:11 · 876 阅读 · 0 评论 -
一文简单理解Java线程池的问题
线程池:一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核充分利用,还能防止过分调度。线程池架构好处:降低资源的消耗,提高响应速度, 方便管理线程复用、可以控制最大并发数、管理线程特征:线程池中的线程有一定的量 可以控制并发量线程可以重复使用 在关闭之前都可以一直使用超过一定量的线程提交执行时需要在队列中等待架构java通过Execu原创 2021-07-20 08:33:11 · 208 阅读 · 2 评论 -
BlockingQueue(阻塞队列)
BlockingQueue阻塞队列(BlockingQueue) 是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。使用场景: 多线程并发处理,线程池!队列 FIFO先进先出 一端写入一端取出写入如果队列满了就必须阻塞等待 如果队列是空的必须阻塞等待原创 2021-07-19 08:56:35 · 6994 阅读 · 3 评论 -
ReadWriteLock(读写锁)
ReadWriteLockReadWriteLock也是一个接口,提供了readLock和writeLock两种锁的操作机制,一个资源可以被多个线程同时读,或者被一个线程写,但是不能同时存在读和写线程。读锁:共享锁 readLock**写锁:**独占锁 writeLock读写锁 : 一个资源可以被多个读的线程进行访问 ,或者可以被一个写的线程访问,但是不能同时存在读和写进程 ,读写互斥,读读共享。读的时候可以多个线程一起读写的时候只能一个线程写使用示例:向map中添加和读取值p原创 2021-07-18 15:42:37 · 21932 阅读 · 0 评论 -
Semaphore信号量
Semaphore信号量Semaphore是用来保护一个或者多个共享资源的访问,Semaphore内部维护了一个计数器,其值为可以访问的共享资源的个数。一个线程要访问共享资源,先获得信号量,如果信号量的计数器值大于1,意味着有共享资源可以访问,则使其计数器值减去1,再访问共享资源。如果计数器值为0,线程进入休眠。当某个线程使用完共享资源后,释放信号量,并将信号量内部的计数器加1,之前进入休眠的线程将被唤醒并再次试图获得信号量。例如:停车场的车位 ,有空闲车位才可以停,没有空闲车位只能等待。主要使用方原创 2021-07-18 14:21:07 · 270 阅读 · 0 评论 -
CopyOnWriteArrayList
引入ArrayList单线程下是安全的 但是多线程下存在不安全的问题多线程下是不安全的例如: 我们开启多个线程向arraylist添加数据public class ListTest { public static void main(String[] args) { List<String> list = new ArrayList<>(); for (int i = 0; i < 10; i++) {原创 2021-07-17 15:18:26 · 174 阅读 · 3 评论 -
多线程之jdk 5.0新增的两种创建方式
第一种方式:实现callable接口创建线程的方式三:实现callable接口 -------jdk5.0新增返回结果并且可能抛出异常的任务。实现者定义了一个不带任何参数的叫做 call 的方法。Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。接口 Executor执行已提交的 Runnable 任务的对象。此接口提供一种将任务提交与每个任务将如何运行的机制(包括线程使用的细节、调原创 2021-04-16 11:40:35 · 138 阅读 · 0 评论 -
java多线程之线程通信
线程通信的例子 使用两个线程打印 1-100。 线程1,线程2交替打印涉及的三个方法:wait():一旦执行此方法当前线程进入阻塞状态 ,并释放同步监视器(锁)。notify():一旦执行此方法就会唤醒被wait的线程 如果有多个线程被wait 会唤醒优先级高的那一个。notifyAll():一旦执行此方法会唤醒所有被wait的现线程。 class Number implements Runnable{ private int number=1; @Override原创 2021-04-14 11:58:35 · 171 阅读 · 0 评论 -
java多线程之线程安全问题
什么是线程安全问题?例子:创建三个窗口卖票 总票数100张 使用实现Runnable接口的方式存在线程安全问题卖票的过程中出现了重票,错票 -->出现了线程安全问题class Window1 implements Runnable{ private int ticket=100; @Override public void run() { while (true){ if (ticket > 0) {原创 2021-04-13 11:34:54 · 229 阅读 · 2 评论 -
Thread常用方法
Thread中的常用方法1.start :启动当前线程2.run : 通常需要重写此方法 ,将创建的线程要执行的操作声明在此方法中3.currentThread :静态方法; 返回执行当前代码的线程4.getName : 获取当前线程的名字5.setName: 设置当前线程的名字多线程的方法//输出100以内的偶数class MyThread extends Thread{ @Override public void run() { for (int i=原创 2021-04-11 10:40:15 · 195 阅读 · 2 评论