
java
文章平均质量分 90
orange大数据技术探索者
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
jdbc中文有乱码的问题
jdbc:mysql://192.168.1.100:3306/Strengthen这是我的jdbc,会出现问题比如中文乱码还有like 或者 = ‘中文’,会匹配不到其实本质上都是乱码的问题解决jdbc连接时添加?useUnicode=true&characterEncoding=utf8其实很简单的一个问题,就是因为偷懒,平时都没事,习以为常,出现问题也找不...原创 2019-07-03 10:47:27 · 428 阅读 · 0 评论 -
execute()与返回值
execute有三种用法:ResultSet executeQuery(String sql); 执行SQL查询,并返回ResultSet 对象。int executeUpdate(String sql); 可执行增,删,改,返回执行受到影响的行数。boolean execute(String sql) throwsSQLException;boolean execute(String sql)这种sql执行失败会报错,返回值boolean并不是执行成功或者失败如果第一个结果为 ResultSe原创 2020-05-29 18:26:07 · 3298 阅读 · 0 评论 -
浅析JVM之GC
目录GC3个特点分代收集年轻代(Young Gen)老年代(Tenure Gen)GC的4大算法GC算法总体概述Minor GC和Full GC的区别引用计数法复制算法(Copying)标记清除(Mark-Sweep)标记压缩(Mark-Compact)GC3个特点次数上频繁收集Young区次数上较少收集Old区基本不动元空间分代收集没有最好的算法,只有最合适的算法年轻代(Young Gen)年轻代特点是区域相对老年代较小,对像存活率低。这种情况复制算法的回收整理,速度是最快的。复制原创 2020-07-01 11:05:27 · 179 阅读 · 0 评论 -
浅析JVM
JVMclass file后缀名.classclass文件在文件开头有特定的文件标示ClassLoader负责加载class文件,将class文件字节码内容加载到内存中,并将这些内容转换成方法区中的运行时数据结ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定几种类加载器我们打开rt.jar,里面包含了Object String等这些类,所以我们才可以直接使用ext目录下有很多扩展jar包,保证java的扩展性类加载器原创 2020-07-01 11:06:14 · 193 阅读 · 0 评论 -
死锁
当线程进入对象的synchronized代码块时,便占有了资源,直到它退出该代码块或者调用wait方法,才释放资源,在此期间,其他线程将不能进入该代码块。当线程互相持有对方所需要的资源时,会互相等待对方释放资源,如果线程都不主动释放所占有的资源,将产生死锁。避免在对象的同步方法中调用其它对象的同步方法,那么就可以避免死锁产生的可能性public class DeadLock implements Runnable { public int flag = 1; //静态对象是类的所原创 2020-05-12 17:36:37 · 134 阅读 · 0 评论 -
java的几种锁
这里写目录标题公平锁/非公平锁可重入锁/递归锁自旋锁读写锁/独占/共享锁公平锁/非公平锁可重入锁/递归锁自旋锁读写锁/独占/共享锁原创 2020-07-01 11:04:29 · 200 阅读 · 0 评论 -
JVM浅析(中度)
目录JVM垃圾回收的时候如何确定垃圾什么死垃圾如何判断一个对象可以被回收引用计数法可达性分析GC RootsJVM参数标配参数X参数(了解即可)XX参数(重要)布尔类型KV键值类型Xms/XmxJVM 常用参数JVM参数参看JVM4中引用强引用软引用应用弱引用WeakHashMap虚引用引用队列ReferenceQueue总结OOMJVM垃圾收集器4种类型7大垃圾收集器Serial收集器ParNew收集器Parallel Scavenge收集器SerialOld收集器ParallelOld收集器CMS收集器原创 2020-07-02 18:05:47 · 927 阅读 · 0 评论 -
java锁与JUC-lock
同步代码块import com.sun.org.apache.regexp.internal.recompile;public class ThreadSynchronizedSecurity { static int tickets = 10; class SellTickets implements Runnable{ @Override public void run() { // 同步代码块 whil原创 2020-07-01 11:05:49 · 214 阅读 · 0 评论 -
创建线程几种方法
目录题继承Thread实现 Runnable 接口匿名内部类函数式接口(java8新特性)实现Callable接口(concurrent包下新特性)继承Threadpublic class TestThread { public static void main(String[] args) throws Exception { Thread t1 = new MyThread(); Thread t2 = new MyThread(); t1.s原创 2020-06-19 17:53:54 · 404 阅读 · 0 评论 -
JUC之CountDownLatch/CyclicBarrier/Semaphore
目录CountDownLatch概念code演示结合枚举类CyclicBarrier概念code演示,Semaphore概念code演示CountDownLatch概念一个计数器,减法操作CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用await方法的线程会被阻塞。其它线程调用countDown方法会将计数器减一(调用countDown方法的线程不会阻塞),当计数器的值变为0时,因调用await方法被阻塞的线程会被唤醒,继续执行code演示import ja原创 2020-07-01 13:58:51 · 395 阅读 · 0 评论 -
线程池
目录概念优点架构线程池三种常用创建方式newFixedThreadPoolnewSingleThreadExecutornewCachedThreadPool线程池底层原理线程池工作流程线程池的拒绝策略自定义线程池概念线程池主要是控制运行线程的数量,将待处理任务放到等待队列,然后创建线程执行这些任务。如果超过了最大线程数,则等待优点线程复用:不用一直new新线程,重复利用已经创建的线程来降低线程的创建和销毁开销,节省系统资源。提高响应速度:当任务达到时,不用创建新的线程,直接利用线程池的线程。原创 2020-07-01 17:00:39 · 171 阅读 · 0 评论 -
JUC集合类之阻塞队列
这里写目录标题概念架构BlockingQueue的七个实现类BlockingQueue的API阻塞队列的应用——生产者消费者概念当阻塞队列为空时,获取(take)操作是阻塞的;当阻塞队列为满时,添加(put)操作是阻塞的。阻塞队列不用手动控制什么时候该被阻塞,什么时候该被唤醒,简化了操作。许多消息中间件底层就是用它们实现的架构我们用diagrams查看一下BlockingQueue的七个实现类主要就是加粗的三个类名作用ArrayBlockingQueue由数组构成的原创 2020-07-01 15:45:17 · 181 阅读 · 0 评论 -
JUC之集合安全问题
目录为什么不安全ArrayList单线程代码ArrayList多线程代码问题1-每次结果都不一致问题2- 线程多的情况下直接异常原因解决方案Vector利用Collections工具类concurrent包写时复制急速源码其他集合为什么不安全以ArrayList为例ArrayList单线程代码List<String> list = new ArrayList<>();for (int i = 1; i <= 3; i++) { list.add(UUID.ra原创 2020-06-19 15:54:17 · 201 阅读 · 0 评论 -
多线程与线程安全
线程很多人都知道,但是可能有时候很多人都不太明白原创 2019-09-30 14:26:53 · 190 阅读 · 0 评论 -
JMM
目录JMM线程安全的三个特性可见性描述code演示解决方案原子性描述code演示解决方案有序性code演示解决方案volatile关键字volatile应用JMMJMM是java内存模型,只是一种抽象的概念JVM运行程序的实体其实是线程每个线程创建时JVM会为他创建一个本地内存,存放线程的私有数据所有变量存放在主内存中,主内存是所有线程共享的线程对变量的操作在本地内存中进行4-1. 变量要将变量从主内存copy到本地内存4-2. 对变量进行操作4-3. 写回到主内存不同线程无法访问其原创 2020-07-01 11:05:18 · 400 阅读 · 0 评论 -
JUC之atomic
JUC核心知识点JMMvolatile关键字可见性原子性有序性哪些地方用到过volatile?单例模式的安全问题CASCAS底层原理CAS缺点ABA问题AtomicReferenceAtomicStampedReference和ABA问题的解决集合类不安全问题ListCopyOnWriteArrayListSetHashSet和HashMapMapJava锁公平锁/非公平锁可重入锁/递归锁锁的配对自旋锁读写原创 2020-07-01 11:05:11 · 500 阅读 · 0 评论 -
三目运算符的问题
public class Demo1 { public static void main(String[] args) { Map<String, Long> map = Maps.newHashMap(); map.put("value",1L); //代码一 //Long l1 = map.get("value") == null ? 0L : map.get("value-null") ; //Sys原创 2020-12-21 16:53:13 · 281 阅读 · 0 评论 -
同步方法内调用多个有延迟接口解决方案
需求介绍之前遇到了这么一个需求一个同步的请求,每次请过过来我需要调用底层接口创建配置文件,需要创建4个配置文件但是这个接口有点慢,每个接口大概1.5S,4个接口6S对一个同步接口显然是不能接受的我创建成功之后还要回调service的接口思路之前遇到这个问题确实难道了我半天,然后去了解了多线程和计数器首先创建计数器多线程同时跑4个接口调用计数器到4时候在回调接口code...原创 2020-07-04 15:14:30 · 946 阅读 · 0 评论 -
几种数据结构对比
这里写目录标题数组链表树数组数组是有下标的,所以是存取有顺序的可以通过下标获取有下标查询速度是很快的每次增删必须创建一个新的数组,把原来的数组元素copy过去,比较慢链表查询慢增删快树...原创 2020-06-18 20:13:35 · 333 阅读 · 0 评论 -
java8之函数式接口
目录特点经典应用自定义讲解特点函数式接口必须表名@FunctionalInterface注解必须有且仅有一个抽象方法,可以被隐式转换为 lambda 表达式可以有多个default方法可以有多个static方法经典应用new Thread(() -> { for (int i = 1; i <= 40; i++) System.out.println(i);}, "A").start();自定义讲解package test;@FunctionalInterf原创 2020-06-18 18:22:58 · 112 阅读 · 0 评论 -
java普通项目怎么使用dubbo rpc接口
首先要依赖dubbo和spring<!-- start of spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version原创 2020-05-28 17:08:54 · 797 阅读 · 0 评论 -
java操作selenium(二)-微博自动登录后回复
简单介绍下逻辑步骤:1.登录先判断是否有cookie,有cookie直接登录,cookie失效使用账号密码登录,开始尝试登录,登录时会判断是否需要验证码(我用的是云打码平台,百度一下就知道了,这里就不做阐述,代码关于打码平台的没放出来,需要的去网上百度下)2.回复 ps:这些id都是微博的,爬虫可以拿到url就不用说了,我们肯定要到这个微博页面,自然需要微博的链接content就是要...原创 2019-01-11 13:15:16 · 1663 阅读 · 0 评论 -
java操作selenium(一)
参考:http://www.testclass.net/selenium_java/一共分为二十个部分:环境安装之Java、环境安装之IntelliJ IDEA、环境安装之selenium、selenium3浏览器驱动、selenium元素定位、控制浏览器操作、WebDriver常用方法、模拟鼠标操作、模拟键盘操作、获取断言信息、设置元素...转载 2019-01-10 15:51:15 · 5200 阅读 · 0 评论 -
使用log4j2的jar包报错:ERROR StatusLogger Unrecognized conversion specifier [d]
执行jar包上次遇到过一个问题,这次又出现一个,同样是idea执行没问题,达成jar包运行jar包出现问题log4j2 是采用的插件式编程,当log4j2包编译时,或者含有log4j2插件的包编译时,会将需要加载的插件信息放在META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat这个文件中(包括官方logj42的原生插件),然后项目启动的时候,log4j2会在各个jar包的META-INF目录下扫描这个插件信息文件,然原创 2020-05-08 17:46:26 · 5445 阅读 · 0 评论 -
python与java互相调用之jpype
python与java互相调用发现最常用的就是jpype了网上大部分用的都是jpype不过pyspark用的是py4jjpype我是python3.6环境pip install jpype1from jpype import *startJVM(getDefaultJVMPath(), "-ea")res = java.lang.Math.abs(3)print(3)shu...原创 2020-04-28 15:04:31 · 636 阅读 · 0 评论 -
json与带泛型的集合转换之 new TypeReference
json与集合转换利用一些工具类即可但是但泛型的集合就不行了,这里采用alibba的fastjson比如生成数据 Map<String,Set<String>> map = new HashMap<>(); for (int i = 0; i < 10; i++) { TestEntity testEntity...原创 2019-12-10 11:36:49 · 4194 阅读 · 0 评论 -
BIO、NIO、AIO的区别和reactor模型
1.什么是BIO,NIO,AIOJAVA BIO:同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程并处理,如果这个连接不做任何事情会造成不必要的开销,当然可以通过线程池机制改善JAVA NIO:同步非阻塞,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有IO请求时才启动一个线程进行处理JAVA...原创 2019-10-22 16:17:03 · 403 阅读 · 0 评论 -
时间复杂度
4个案例讲解什么是时间复杂度场景1:给小灰一条长10寸的面包,小灰每3天吃掉1寸,那么吃掉整个面包需要几天?答案自然是 3 X 10 = 30天。如果面包的长度是 N 寸呢?此时吃掉整个面包,需要 3 X n = 3n 天。如果用一个函数来表达这个相对时间,可以记作 T(n) = 3nvoid eat1(int n){ for(int i=0; i<n; i++){; ...原创 2019-10-09 15:20:16 · 170 阅读 · 0 评论 -
二分查找法
条件: 必须有序时间复杂度: O(log2n)实现:循环: /** *@param arr *@param key *@return 关键字位置 */ public static int commonBinarySearch(int[] arr,int key){ int low = 0; int high = arr.length - 1; int midd...原创 2019-10-08 16:32:02 · 110 阅读 · 0 评论 -
实体类生成get和set以及toString hashcode和equals方法
package com.envisioniot.rms.bigdata;import com.envisioniot.rms.bigdata.pojo.ArchResponse;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.lang.reflect....原创 2019-07-01 16:14:49 · 418 阅读 · 0 评论 -
shedlock保证定时任务只执行一次
shedlock保证定时任务只执行一次为了保证高可用,服务部署多个,同时启用奥正无缝连接,这时可能一个定时任务被同时执行多次shedlock为定时任务统一加锁,存在表里,这个锁不释放,就不会继续执行表/**shedlock */DROP TABLE IF EXISTS `shedlock`;CREATE TABLE shedlock( name VARCHAR(6...原创 2019-06-10 14:12:01 · 1033 阅读 · 0 评论 -
hive分区名带url编码
url编码 %2A 之类ENCODE可以不写,也可以是自定义的编码格式例如GBK UTF-8解码java.net.URLDecoder.decode(str, ENCODE);转码java.net.URLEncoder.encode(str, ENCODE);原创 2019-05-07 11:12:36 · 592 阅读 · 0 评论 -
java使用shell通配符
java中使用shell通配符1.自己实现2.利用nio包中文件名匹配3.附带常用通配符1.自己实现我自实现了 转义// 匹配 * ? 另外{}实现不完整,有些bug,放在了main里面 /** * Checks whether a string matches a given wildcard pattern. * * @param stri...原创 2019-05-07 11:10:43 · 367 阅读 · 0 评论 -
StringUtils中isEmpty和isBlank
1. public static boolean isEmpty(String str)判断某字符串是否为空,为空的标准是str==null或str.length()==0下面是StringUtils判断是否为空的示例:StringUtils.isEmpty(null) = trueStringUtils.isEmpty("") = trueStringUtils.isEmpty(" “...原创 2019-04-22 16:03:36 · 432 阅读 · 0 评论 -
java8新特性之 forEach、filter、map
1 forEachforEach用于遍历元素。1.1 准备数据List<Employee>: List<Employee> employeeList = new ArrayList<>(); employeeList.add(new Employee("Alice", 23, "London", 1200.00)); em...原创 2019-04-03 16:49:23 · 2423 阅读 · 1 评论 -
hashMap源码解析
hashmap底层用数组+链表的方式哈希表里面就是有数组和链表组成的jdk1.8数组+链表+红黑树重要参数在>80将链表转为红黑树默认初始容量是16加载因子75% 容量超过75%就进行扩容由链表与红黑树相互转换的阀值static final int TREEIFY_THRESHOLD = 8 到8就转换为红黑树static final int UNTREEIF...原创 2019-03-24 12:56:16 · 176 阅读 · 0 评论 -
避免使用ArrayList中的subList方法及详解
案列public static void main(String[] args) { List<String> names = new ArrayList<String>() {{ add("hht1"); add("hht2"); add("hht3"); }}; ArrayList subLis...原创 2019-07-01 20:01:49 · 309 阅读 · 0 评论 -
lombok
@Data相当于setter/getter以及toString、equals和hashCode@ToString(exclude=“name”)toString时不包含name字段原创 2019-07-02 10:26:05 · 373 阅读 · 0 评论 -
五 反射和对象拷贝
1原创 2019-09-26 15:08:04 · 138 阅读 · 0 评论 -
java容器总结
18.java 容器都有哪些?数组 集合 String19.Collection 和 Collections 有什么区别?Collections 是集合的工具类,提供了包括线程安全转化,排序,搜索等功能Collection 是集合的一个父类20.List、Set、Map 之间的区别是什么?Map以键值对的形式对元素进行存储。Map不允许有重复键,但允许有不同键对应的重复的值;2...原创 2019-09-23 18:07:31 · 173 阅读 · 0 评论