- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 UDP代码示例
UDP 类似发短息 ,寄快递, 对方可收可不收package JUC.UDP;import java.io.IOException;import java.net.*;public class DatagramSocketTest { public static void main(String[] args) throws IOException { DatagramSocket datagramSocket = new DatagramSocket();
2021-12-02 16:16:33 1080
原创 TCP网络编程示例
模拟客户端发送消息,服务端接收服务端:package JUC.tcp;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;public class TcpServerTest { public static void main(String[]
2021-12-02 10:41:47 525
原创 Docker介绍及使用
Docker为什么出现?1.从开发到上线, 存在多套环境配置, 如:本地集成环境,测试环境,UAT环境,FAT环境,生产环境等.2.版本的升级导致服务不可用, 这里...程序员经常会说 在我的电脑上好好的啊,怎么在你那跑不起来了.3.环境部署繁琐,每个服务都需要各种redis , MQ, Hadoop,elasticSearch中间件*如果一个项目可以带上自身的环境打包****Docker给以上的问题,提出了解决方案**1.java -> 打包 -> jar带上环境(镜像
2021-11-22 10:47:15 1460
原创 各种锁的理解
1.公平锁,非公平锁公平锁: 非常公平,不能插队,必须先来后到非公平锁: 非常不公平,可以插队,默认是非公平Lock lock = new ReentrantLock(true);public ReentrantLock(boolean fair) { sync = fair ? new FairSync() : new NonfairSync(); }2.可重复锁synchronized 拿一把锁 会把里面的锁也拿到public class loc
2021-11-18 15:45:31 88
原创 CAS原理分析, 以及引发的ABA问题
CAS 是AtomicInteger类中compareAndSet()方法的缩写import java.util.concurrent.atomic.AtomicInteger;/** * CAS 是compareAndSet的缩写 译:比较并交换 此操作是在内存中进行 */public class CASTest { public static void main(String[] args) { //设定初始值1 AtomicInteger ...
2021-11-18 11:12:55 230
原创 volatile 介绍
volatile是java虚拟机提供的轻量级同步机制。特点是:1.保证可见性即不同线程在对同一个变量进行修改时,保证新值对其他线程的可见。2.不保证原子性import java.util.concurrent.atomic.AtomicInteger;public class VolatileTest { //private volatile static int num = 0; private static AtomicInteger num = new A.
2021-11-17 15:23:55 63
原创 CompletableFuture 异步回调
CompletableFuture 实现了Future接口,Future最初的设计,是对将来的某个事件的返回结果进行建模。没有返回值的异步回调,结果返回的是void ,适用于成功回调,不需要结果返回。public static void main(String[] args) throws ExecutionException, InterruptedException { //执行异步回调 无返回 CompletableFuture<Void> voi
2021-11-17 09:56:29 657
原创 关于计算Forkjoin和java.util.stream流
Forkjoin是在JDK1.7的时候,用来的执行并行任务的类。可以把一个任务拆分成多个小任务,进行同步执行,来达到提高效率,适用于大数据量的场景。类似于工作窃取java.util.stream计算流是在JDK1.8的时候新增的。示例:需要继承RecursiveTask重写compute()计算方法package JUC.forkjjoin;import java.util.concurrent.RecursiveTask;public class ForkjoinTest
2021-11-15 11:20:38 115
原创 四大函数式接口
lambda表达式,链式编程,函数式接口,Stream流式计算# 函数式接口> 函数式接口:只有一个方法的接口如:@FunctionalInterfacepublic interface Runnable { public abstract void run();}经过注解@FunctionalInterface修饰代码...
2021-11-15 09:18:11 65
原创 ThreadPoolExecutor 线程池 三大方法 七大参数
> 池化技术程序的运行,本质是占用系统资源,优化资源的使用。池化技术:事先准备好的一些资源,用就来拿**好处**:1.降低资源消耗2.提高响应速度3.方便管理== 线程复用,可以控制最大并发数,管理线程 ==三大方法package com.pa.test.JUC.pool;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public cl
2021-11-10 16:44:52 655
原创 SynchronousQueue 同步队列
没有容量,进去put()一个元素,必须等待取take()出来之后,才能在往里面放。package com.pa.test.JUC.queue;import java.util.concurrent.SynchronousQueue;import java.util.concurrent.TimeUnit;/** * 同步列队 */public class SynchronousQueueTest { public static void main(String[] args) {
2021-11-10 10:40:31 393
原创 BlockingQueue 四组API
# BlockingQueue 四组API 抛出异常 不抛异常 阻塞等待 超时等待 方式 抛出异常 有返回值 阻塞等待 超时等待 添加 add() offer() put() offer(...) 移除 remove() poll() take() poll(..) 判断队列首 element() peek() package com.pa.test.
2021-11-10 10:09:36 102
原创 shell 资料
*shell查看可以使用哪种shell语言vi /etc/shellsecho 可以实现复杂的输出格式控制展示在控制台控制字符 作用 \a 输出警告音 \b 退格键,就是向左删除键 \n 换行 \r 回车 \t 制表符,就是Tab键 \v 垂直制表符 \Onnn 按照ASCII码输出,0为数字,nnn是三位八进制数 \xhh 按照16进制输出 示例:
2021-11-09 16:56:33 754
原创 ReadWriteLock JUC多线程读写锁
package com.pa.test.JUC.lock;import java.util.HashMap;import java.util.Map;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;/** * ReadWriteLock * 读 读 可以共存 * 读 写 不能共存 * 写 写 不能共存 */publ.
2021-11-04 14:56:19 93
原创 CountDownLatch,CyclicBarrier,Semaphore 使用
package com.pa.test.JUC.support;import java.util.concurrent.CountDownLatch;/** * CountDownLatch 减法计数器 * 原理: * countDownLatch.countDown(); //数量-1 * countDownLatch.await(); //执行等待 等待计数器归零,然后在向下执行 * 每次有线程调用countDownLatch.countDown()数量-1 ,当计数器为0 , co.
2021-11-01 16:57:55 100
原创 synchronized 和 lock的区别
1.synchronized 内置java关键字 lock是java类2.synchronized 无法获取锁的状态 lock可以判断是否获取到锁3.synchronized 会自动释放锁 lock必须手动释放,如果不释放就会成为死锁4.synchronized 在多线程的情况下,如果一条线程执行时间很久,后面的线程会一直等待。 lock锁不会等5.synchronized 可重入锁,不可以中断,非公平。 lock可重入锁,可以判断锁,可以设置公平或非公平6.synchronized 适
2021-10-26 10:37:29 86
原创 使用maven打zip包
pom.xml文件加入:<plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptors> <descriptor>assembly.xml</descriptor> </descriptors> </configuration> <executions>
2021-10-08 09:58:18 246
原创 项目打zip包 代码示例
public static void main(String[] args) throws MojoFailureException, MojoExecutionException { new DownloadFilesMojo().execute(); } @Override public void execute() throws MojoExecutionException, MojoFailureException { //本地测试...
2021-07-21 14:37:17 141
原创 常用的java工具类
常用的java工具类一org.apache.commons.io.IOUtilscloseQuietly 关闭一个IO流,socket 或者selector且不抛出异常,通常放在finally快toString 转换IO流,Uri,byte[]为Stringcopy IO流数据复制,从输入流写到输出流中,最大支持2GbtoByteArray 从输入流,URI获取byte[]writ...
2019-08-14 10:39:29 242
原创 Weblogic部署项目
Weblogic部署项目1 启动weblogic服务,登录用户名和密码2 点击左侧的部署3 点击安装按钮4 看到路径输入框,可以在下面选择要部署的项目的位置5 选择项目路径6 点击下一步7 继续下一步8 点击完成按钮9 保存10 成功状态11 点击部署,勾选上项目,点击启动...
2019-03-09 12:30:13 104
原创 遇到weblogic报错 此时不应有 \Java\jdk1.6.0_10\lib
遇到weblogic报错 此时不应有 \Java\jdk1.6.0_10\lib1.一定要使用WebLogic指定的JDK ,在eclipse中要设置路径。D:\Weblogic\jdk160_292.JDK的冲突了,需要修改环境配置环境变量修改方法 计算机——右键属性——搞系统设置——环境变量,认真找找,环境变量里边肯定有关于jdk1.6 的信息,改成你安装的JDK版本路径就可以了...
2019-03-09 12:17:07 1142
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人