![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java
。。。。
风zi
这个作者很懒,什么都没留下…
展开
-
Java中的escape,unescape方法
来源链接: https://blog.csdn.net/hujingn/article/details/5791130////Java中的escape,unescape方法package my.tools;public class EscapeUnescape { public static String escape(String src) { int i; char j;...原创 2019-03-06 20:04:01 · 5838 阅读 · 0 评论 -
java-生成手机号
public static int getNum(int start,int end) { return (int)(Math.random()*(end-start+1)+start); } /** * 返回手机号码 */ private static String[] telFirst="134,135,136,137,138,139,150,151,152,157,158,159,130,131,132,155,156,133,153".split(",")..原创 2020-11-18 09:44:52 · 1707 阅读 · 0 评论 -
AES前后台做加密
使用场景:登录密码在请求后台接口过程中加密传输1、前台vue中前台使用aes:https://www.cnblogs.com/libo0125ok/p/9224121.htmlhtml中使用demo:https://download.csdn.net/download/qq_35241080/128509132、后台 加解密工具类import java.math.BigInteger;import javax.crypto.Cipher;import javax.crypto.KeyGene原创 2020-09-16 16:47:23 · 616 阅读 · 0 评论 -
线程的四种创建方式
一、线程的创建方式线程有四种创建方式,下面就来介绍一下这四种实现方式二、实现方式1.继承的方式:继承Thread类,重写run方法,但是启动线程时不是调用run方法,而是调用父类的start方法class ThreadDemo1 extends Thread{ @Override public void run(){ System.out.p...原创 2018-09-08 16:12:32 · 2895 阅读 · 0 评论 -
线程的四种创建方式
一、线程的创建方式线程有四种创建方式,下面就来介绍一下这四种实现方式二、实现方式1.继承的方式:继承Thread类,重写run方法,但是启动线程时不是调用run方法,而是调用父类的start方法class ThreadDemo1 extends Thread{ @Override public void run(){ System.out.p...原创 2018-09-09 22:42:21 · 1453 阅读 · 0 评论 -
Condition线程通信,交替执行
一、线程通信,交替执行编写一个程序,开启 3 个线程,这三个线程的 ID 分别为 A、B、C,每个线程将自己的 ID 在屏幕上打印 10 遍,要求输出的结果必须按顺序显示。 *如:ABCABCABC…… 依次递归使用锁加上condition来实现congdition接口下的基本方法await() //进入等待await(long, TimeUnit)//等待时间awaitN...原创 2018-09-08 16:48:55 · 235 阅读 · 0 评论 -
511、java-简单的CAS算法实现
一、简单的CAS实现 CAS算法是根据当前值于最近获取值比较是否相等,相等则修改,不相等则放弃,由此得出最重要的三步 1.获取值;2.比较直;3.会否修改值package com.cjy;import java.util.HashMap;import java.util.Map;public class CompareAnSwap { public ...原创 2018-09-08 15:01:16 · 1251 阅读 · 1 评论 -
关键字--volatile内存可见性
一、volatilevolatile 关键字:当多个线程进行操作共享数据时,可以保证内存中的数据可见。大家先来看下面一段代码发生情况: 启动一个main主线程,一个子线程,子线程修改共享数据flag可终止main线程的死循环。但是由于子线程修改后main线程无法及时获取新值依然无法终止死循环,对于此情况就是内存可见性导致的问题; 解决方式一:使用volatile修改共享...原创 2018-09-08 14:58:47 · 129 阅读 · 0 评论 -
(一)关键字--transient
一、transient关键字transient:字面意思临时短暂;在java中修饰变量表示只存在于内存中,当序列化至磁盘时不保存,如TreeMap中就有此关键字使用;测试代码package com.sjjg.rbtree;import java.io.Serializable;public class Person implements Serializable{ ...原创 2018-09-04 15:23:36 · 205 阅读 · 0 评论 -
JUC--CountDownLatch介绍
一、CountDownLatch介绍 CountDownLatch是juc并发包下的一个同步工具类,用于协调多个线程之间同步的或者说线程之间的通信,告诉某一线程等待其他线程执行完后再执行,无法起到互斥作用; 线程计数器,创建对象时可初始化线程计数值,每当执行完一个线程可调用对应的方法计数器减1,当计数器为0零被中断的线程开始运行。 用法:当需要多个线程并行结束后再执行...原创 2018-09-06 16:22:03 · 470 阅读 · 0 评论 -
JUC包下的CopyOnWriteArraySet集合
CopyOnWriteArraySetCopyOnWriteArraySet在CopyOnWriteArrayList基础上进行实现的,主要区别于set是去重的集合,所以再添加方法上略有不一样;//继承与AbstractSetpublic class CopyOnWriteArraySet<E> extends AbstractSet<E> im...原创 2018-09-08 14:37:14 · 233 阅读 · 0 评论 -
JUC下的CopyOnWriteArrayList理解
一、ArrayList集合迭代时修改元素1.普通ArrayList集合进行操作时: @Test public void test(){ ArrayList<Integer> list = new ArrayList<Integer>(); for (int i = 0; i &原创 2018-09-06 12:25:08 · 310 阅读 · 2 评论 -
Math类常用操作
1.指定范围内随机数据生成//随机生成100以内的int型数据int r = (int) (Math.random() * 100); //随机生成100以内的double 型数据double d = (double ) (Math.random() * 100); ...原创 2018-11-19 18:37:16 · 202 阅读 · 0 评论 -
java 字符串的运算公式直接转计算结果
import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.ScriptException;//字符串的运算公式直接转计算结果public class Demo1 { public static void main(String[] args) { Scr...原创 2019-10-25 15:44:14 · 2237 阅读 · 1 评论 -
使用toUpperCase toLowerCase getBytes方法实现一串字母字符的大小写转换
使用toUpperCase toLowerCase getBytes方法实现大小写转换public class UpperAndLowerTest{public static void main(String args[]){String s1=("ABCdefgHIJkhl123"),s2,s3;System.out.println("未转换时的字符串 s1="+s1);byte...原创 2018-11-27 15:32:40 · 680 阅读 · 0 评论 -
String字符串编码解码格式
String字符串编码解码格式 String.getBytes()//方法是得到一个操作系统默认的编码格式的字节数组。 String.getBytes(String decode)//方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示 new String(byte[] b,String decode)//按照指定的方法编码正常的编码解码 byt...原创 2018-10-10 18:04:14 · 21215 阅读 · 1 评论 -
comparable和comparator的区别
一、介绍 comparable与comparator都是java.util 下提供的比较器接口,用于两个对象之间的比较关系,其主要区别在与:comparable:实现comparable接口在于实现接口的类型,某一个对象本身与相同类型的其他对象做比较;comparator:comparator则是作为一个比较器的存在,不用需要比较的类类实现此接口而起其他类来实现此接口,从而起到一...原创 2018-09-08 14:40:20 · 875 阅读 · 0 评论 -
三、非阻塞网络NIO
一、使用 NIO 完成网络通信的三个核心:通道(Channel):负责连接java.nio.channels.Channel 接口: |–SelectableChannel |–SocketChannel |–ServerSocketChannel |–DatagramChannel |–Pipe.SinkChannel ...原创 2018-09-09 21:26:14 · 214 阅读 · 0 评论 -
二、NIO复制本地文件及常用类
一、使用通道完成本地文件复制1.利用通道完成文件的复制(非直接缓冲区) //利用通道完成数据传输(非直接缓冲区) @Test public void test1() { //1.获取通道 FileInputStream fis = null; FileOutputStream fos = null; ...原创 2018-09-09 13:44:10 · 401 阅读 · 0 评论 -
一、NIO简介
NIO简介 javaNIO是有java1.4之后引入的一个新的IO API,可以提完标准的IO API,NIO与IO有相同的作用和目的,但使用方式完全不一样,NIO面向缓冲区、基于通道的IO操作,将以更加高效的方式进行文件读写操作。IO NIO 面向流 面向缓冲区 阻塞 ...原创 2018-09-09 14:01:02 · 233 阅读 · 0 评论