java技术圈 为您找到相关结果 360

antlr4 + spark sql对业务sql进行解析

antlr4 + spark sql对业务sql进行解析通过Spark Sql实现SQL解析 在大数据平台开发过程中,会遇到血缘分析,对SQL解析并进行权限的鉴权,需要提前对SQL进行基本语法校验,这些场景都需要对SQL进行解析。 常用的sql解析工具 阿里 Druid:支持的数据库类型不少,但是解析时需要制定数据库类型,并且在使用中,对hive的语法解析版本比较老,兼容性不太好 2.Hive原生sql解析:由于在大数据平台进行业务开发时,开发人员写的SQL并一定是完全符合hive规范的,因为在运行时是先通过spark进行解析的,所以也并不能完全满足需要 3.General SQL Parser(未测试)这款工具在解析的时候也是需要指定数据库 最后通过调研之后,决定还是采用spark原生的s...阅读全文

博文 2020-08-09 14:48:10 简书

关于java研发工程师面试相关的部分参考

今天受邀去参加了某个公司面试的第二轮复试,今天复试的是公司的一个项目主管,感觉比之前面试的更懂技术一些,还问了一些比较刁钻的问题,在这里记录一些自己的不足和自己觉得比较有价值的东西,作为自己的部分参考。 ①关于docker和vmware优势 docker在磁盘空间上的节省不用说了,MB 与 GB的对比; VMware公司指出虚拟化会只会引入大约2%到4%的性能损失。在Docker容器中运行像Redis这样的应用程序,其性能是完全可以接受的,而其在安全、管理等方面的优势使得Docker容器成为虚拟化方面的推荐选择; Docker的简易性。“Docker为从根本上为简化和加快软件产品的构建提供了巨大的潜力”; docker其他的优势: 轻量级的隔离环境比虚拟机能够更方便和快捷地启动和停止; 可以...阅读全文

博文 2019-04-04 09:45:38 www.allocmem.com

Java8中lambda表达式无法抛出受检异常的问题

Java8中lambda表达式无法抛出受检异常的问题 问题提出 昨天写代码的时候遇到了一个需要在Java8流中抛出异常的问题,结果一直编译报错,先看下代码: //编译通过 Stream.of("a", "b", "c").forEach(str -> { throw new RuntimeException(); }); //编译失败 Stream.of("a", "b", "c").forEach(str -> { throw new IOException(); }); 把异常catch住处理的场景就不说了,这里要讨论的是如果希望把异常向上抛的时候该怎么做? 问题分析 从上面的代码片段可以看出,RuntimeException是可以编译通过的,而IOException不行,因此先看下Ja...阅读全文

博文 2020-04-17 08:21:36 简书

java - log4j2 ERROR StatusLogger Unrecognized conversion specifier

I have log4j2 in my project when I run main method in intellij Idea ,it correct to print log. when i use maven-shade-plugin package project to jar file, and run jar as standalone application it shows error: java -cp package.jar com.xxx.TestMain the console output ERROR StatusLogger Unrecognized format specifier [d] ERROR StatusLogger Unrecognized c...阅读全文

博文 2020-12-11 03:23:33 Stack Overflow

使用Jetty的StdErrLog进行默认日志记录

StdErrLog配置如果您不执行任何操作来配置单独的日志记录框架,Jetty将默认使用内部org.eclipse.jetty.util.log.StdErrLog实施。这会将所有日志记录事件输出到STDERR(aka System.err )。只需使用Jetty和StdErrLog基于日志的日志输出到控制台。Jetty发行版中包含一个名为的日志模块console-capture能够简单捕获所有STDOUT( System.out )和STDERR( System.err )输出到每天轮换的文件。要启用此功能,只需激活console-capture命令行上的模块:[my-base]$ java -jar ../start.jar --add-to-start=console-capture ...阅读全文

博文 2021-01-28 12:13:19 xy2401.com

关于HTTP的Content-Length与Chunk编码方式_YotWei-CSDN博客_content

最近在学习netty,里面提到了一个TCP拆包粘包的问题,查阅资料了解到了几种解决的办法,例如 使用特殊分隔符 定长数据帧以及 自定义消息头+消息体,在消息头中定义数据包的长度 关于最后一种实现手段,最典型的代表就是我们常见的HTTP协议。 关于Content-Length Content-Length是HTTP头部的一个字段,用于表示HTTP的body数据的长度。但是在HTTP 1.0的时候,Content-Length字段可有可无,因为HTTP 1.0的每一个网络请求都是短连接,在发起TCP三次握手后,服务端返回数据,随后四次挥手,这个连接在HTTP请求结束后会立即关闭,浏览器在读到EOF(-1)的时候就可以认为数据传输完毕。下面用一个Java程序验证一下 public class Ht...阅读全文

博文 2020-06-29 12:06:32 length chunk

nginx搭配frp进行端口和服务转发

###引言: java接入三方运营商服务接口,需要可供回调的公网接口,并在本地两台(及以上)调试接口服务,于是使用开源frp进行穿透,nginx搭配负责分发请求到不同机器。 ###安装环境: 1. ubuntu 16.04 LTS 一台服务器 两台客户机 2. 已安装好nginx ###frp配置过程: 参考我之前博文[http://blog.csdn.net/yan_chou/article/details/53406095](http://blog.csdn.net/yan_chou/article/details/53406095) 并分端口配置两份 ###一台客户机中nginx配置过程: 修改nginx.conf sudo vim /etc/nginx/nginx.conf 修改ht...阅读全文

博文 2019-04-04 09:50:11 www.allocmem.com

frp配置本地服务端口到服务器80端口

##搭建环境: ubuntu 16.04 LTS (本地服务计算机) ubuntu 14.04 LTS(阿里云服务器) apache tomcat 7 java 7 frp 0.8.1 linux ##搭建过程: 1. 资源准备 - frp 0.8.1 linux 二进制包 - tomcat - 任意版本jvm 2. 开始安装 1. 分别在服务端ubuntu和客户端ubuntu解压安装包(jdk以及tomcat这里不再赘述) ```tar -zxvf frp_0.8.1_linux.tar.gz``` 2. 配置本地ubuntu 16.04 LTS 中frpc.ini为: ``` #frpc.ini [common] server_addr = #阿里云服务器ip地址 server_port...阅读全文

博文 2019-04-04 09:48:20 www.allocmem.com

ubuntu 安装本地版storm并运行WordCount

前言: 开始从apache下载的最新版1.0.3,本地安装没有问题,但是当执行example-wordcount的时候报错找不到主类,后来解压jar包发现,1.03里面没有wordcount,有一些其他的类,于是第二次去下载安装了一个早期版本0.9.6,成功执行。 关于1.0.3和0.9.6的配置异同,可参考官方文档地址http://storm.apache.org/releases/1.0.3/Setting-up-a-Storm-cluster.html 和http://storm.apache.org/releases/0.9.6/Setting-up-a-Storm-cluster.html 个人感觉在安装使用过程中,应尽量从官方文档以及FAQ等获取有用信息,否则自己容易进入一些误区...阅读全文

博文 2019-04-04 09:51:29 www.allocmem.com

spring AOP 动态代理 jkd动态代理和cglib动态代理 hibernate使用cglib延迟加载

spring 的AOP 实现 可以使用jdk的动态代理,也可以使用cglib的动态代理 先说下两者区别: 静态代理:代理之前就已经知道了代理者和被代理者 动态代理:代理之前并不清楚,在运行时使用反射机制动态生成代理类的字节码 无需我们手动编写它的源代码 jdk动态代理:java.lang.reflect 包中的Proxy类,InvocationHandler 接口提供了生成动态代理类的能力。它必须有被代理对象的接口和实现类,ciglib不需要接口,简单的说 jkd动态代理针对接口,而cglib动态代理针对的是类 比JDK快,但加载cglib的时间比jdk反射的时间长,开发的过程中,如果是反复动态生成新的代理类推荐用 JDK 自身的反射,反之用 cglib。 spring AOP的实现 既可以...阅读全文

博文 2019-04-04 09:45:05 www.allocmem.com

GO语言中封装,继承,和多态

##封装 go中的封装和java的不太一样,在go里面是没有java中的class,不过可以把struct看成一个类,封装可以简单地看作对struct的封装,如下 type obj1 struct { valte1 string } type obj2 struct { valte2 string } ##继承 把struct看做类,struct中可以包含其他的struct,继承内部struct的方法和变量,同时可以重写,代码如下 package main import "fmt" type oo struct { inner ss1 string ss2 int ss3 bool } type inner struct { ss4 string } func (i *inner) test...阅读全文

博文 2019-04-04 09:49:29 www.allocmem.com

java.lang.OutOfMemoryError:GC overhead limit exceeded

前言 在我们写的java service里,需要加载一个比较大的算法模型pmml文件.在此模型文件由500M+变为1G+的时候,在测试环境中出现了此问题 异常由来 GC overhead limt exceed检查是Hotspot VM 1.6定义的一个策略,通过统计GC时间来预测是否要OOM了,提前抛出异常,防止OOM发生。Sun 官方对此的定义是:“并行/并发回收器在GC回收时间过长时会抛出OutOfMemroyError。过长的定义是,超过98%的时间用来做GC并且回收了不到2%的堆内存。用来避免内存过小造成应用不能正常工作。 代码中使用静态对象的方式用来在多线程中共享此文件模型,由于加载文件过大,并且长时间的GC回收了不到2%的内存,于是抛出了这个异常 这个异常的作用: > 在应用o...阅读全文

博文 2019-04-03 14:31:02 www.allocmem.com

关于近期java研发工程师面试的一些总结

今天周五,从上个公司离职到现在,忙了3,4天,之前拿到offer的那家公司在往外包公司发展,办公环境也实在不行,于是便有了这几天忙活的事情,这几天投了不少,原本面试已经排到下周二,不过现在算是告一段落了,也拿到了一个初创公司的offer。下面是一些自我总结,方便自己以后查阅,不对也欢迎大家指正和补充。 1.关于oracle的列转行 以及oracle的存储过程 (当时并未回答上)google之主要可使用union all(列转行) ;case when then ,decode(行转列)等 参考http://blog.163.com/magicc_love/blog/static/185853662201371481247696/ 2.token失效和定时器的实现。 线程 setInterva...阅读全文

博文 2019-04-04 09:45:45 www.allocmem.com

自己写Stack 实现栈结构

前言: 栈的应用: 1. 可计算数学后缀表达式 2. 把正常中缀表达式转换为后缀表达式 3. 计算检测编译程序{}等括号符号是否正确,是否存在语法错误 4. 递归中需要实用栈存储方法信息,计算机中函数调用是通过栈(stack)这种数据结构实现,在递归中调用一层函数,栈就会加一层栈帧,每当函数返回,栈就会减少一层栈帧。 正文: java中使用数组实现栈 package com.anteoy.dataStructuresAndAlgorithm.javav2; import java.util.ArrayList; /** * Created by zhoudazhuang on 17-3-1. * Description: */ public class ListGo { public sta...阅读全文

博文 2019-04-04 09:51:06 www.allocmem.com

java golang tcp socket导致线上服务器出现大量close_wait的完整示例

tcp断开连接的四次挥手 先说说tcp的四次挥手,这里假定A端为主动发起关闭端,B端为被动接收关闭请求端。A把tcp的数据包中标识位FIN置为1,seq为一个随机数,发送这个包给B端,自己进入FIN_WAIT_1状态;B端收到了马上给A端回复ack(A端收到ack进入FIN_WAIT_2状态),然后自己进入CLOSE_WAIT状态。然后这个时候需要业务代码处理,把自己需要发给客户端的数据发送完,然后业务代码主动调用相应语言库函数提供的close函数,来触发关闭操作:给A端发送FIN seq的数据包,这是第三次握手。这个时候自己进入last ack状态。 A端此时收到包然后给B端口发送相应ack.A端自己此时进入time_wait状态。 B端收到ack后从last_ack就顺利进入close状...阅读全文

博文 2019-05-21 03:53:37 www.allocmem.com

关于MD5,SALT与SHA1的部分HASH算法解析

在这里我只贴下简单实现,有兴趣了解shiro salt的,大家可以去看看源码哈,或者可以自己实现一些简单的md5,sha1,base64等的简易salt实现,以下示例基本都有注释,如有不对,欢迎指正 package com.zy.md; import java.security.MessageDigest; import java.util.Random; /** * Created by root on 16-10-2. */ public class Test { //main测试类 public static void main(String[] args) { String result = getMD5("zhoudazhuang"); System.err.println(res...阅读全文

博文 2019-04-04 09:47:05 www.allocmem.com

java collection Iterator的remove()方法

事情是这样的,今天在项目里用spring data jpa hibernate的SearchFilter返回一个List<Object>的时候,由于需求需要,必须再使用一定条件过滤部分元素,开始想iterator.remove()方法三下五除二就能解决,结果就悲剧了,前前后后搞了近一小时。下面上代码,同时记录一下: Specification specification = DynamicSpecifications.bySearchFilter(Lawyer.class, set); List lawyerList =lawyerService.findByExample(specification, page); 一开始使用 Iterator阅读全文

博文 2019-04-04 09:46:05 www.allocmem.com

关于java基础点的一些随笔

最近回头来啃一些java的基础知识,在此记录下个人的收获和理解。 1.关于位运算符的异或,简单的说就是在或||运算符的同时为1,1的时候,其结果为0,其他和或运算符的计算结果完全一致,这里写了下利用异或来达到,在不利用第三个变量的基础上,交换两个变量的值。 /** * Created by yan.chou on 16-7-18. * 不使用第三个变量实现两变量互换 */ public class Java3 { public static void main(String[] args) { int a = 0; int b = 10; a = b - a; b = b - a;//利用差值计算 a = b + a; // System.err.printf("%d,%d",a,b); y...阅读全文

博文 2019-04-04 09:43:50 www.allocmem.com

自己写LinkedList GoLinkedList

##前言: java GoLinkedList的简易实现,代码中注释比较详尽,通俗易懂,注意事项亦在注解中标明。 ###正文: GoLinkedList.java package com.anteoy.dataStructuresAndAlgorithm.javav2.my; import java.util.Iterator; /** * Created by zhoudazhuang on 17-3-1. * Description: 简易Linkedlist实现 */ public class GoLinkedList implements Iterable{ //当前容量 size private int currentSize; //附加的数据域 用来帮助迭代气检测集合...阅读全文

博文 2019-04-04 09:50:50 www.allocmem.com

go协程goroutine与Java多线程比较

引言: 个人理解的线程,协程和单,多核线程 单核CPU上运行的多线程程序, 同一时间只能一个线程在跑, 系统帮你切换线程而已(cpu时间切片), 系统给每个线程分配时间片来执行, 每个时间片大概10ms左右, 看起来像是同时跑, 但实际上是每个线程跑一点点就换到其它线程继续跑,效率不会有提高的,切换线程反倒会增加开销(线程的上下文切换),宏观的可看着并行,单核里面只是并发,真正执行的一个cpu核心只在同一时刻执行一个线程(不是进程)。 多线程的用处在于,做某个耗时的操作时,需要等待返回结果,这时用多线程可以提高程序并发程度。如果一个不需要任何等待并且顺序执行能够完成的任务,用多线程是十分浪费的。 个人见解,对于Thread Runable以及ThreadPoolExcutor等建立的线程,线...阅读全文

博文 2019-04-04 09:51:37 www.allocmem.com

[转]在Java中谈尾递归-

我不是故意在JAVA中谈尾递归的,因为在JAVA中谈尾递归真的是要绕好几个弯,只是我确实只有JAVA学得比较好,虽然确实C是在学校学过还考了90+,真学得没自学的JAVA好 不过也是因为要绕几个弯,所以才会有有意思的东西可写,另外还有我发现把尾递归如果跟JAVA中的GC比对一下,也颇有一些妙处(发现还没有人特地比较过) (不过后来边写边整理思路,写出来又是另一个样子了) 转载请注明:博客园-阁刚广志,地址:http://www.cnblogs.com/bellkosmos/p/5280619.html 一、首先我们讲讲递归 递归的本质是,某个方法中调用了自身。本质还是调用一个方法,只是这个方法正好是自身而已 递归因为是在自身中调用自身,所以会带来以下三个显著特点: 调用的是同一个方法 因为1...阅读全文

博文 2019-04-04 09:50:57 尾递归和垃圾回收的比较

[转]Java中使用OpenSSL生成的RSA公私钥进行数据加解密

本文出处:http://blog.csdn.net/chaijunkun/article/details/7275632,转载请注明。由于本人不定期会整理相关博文,会对相应内容作出完善。因此强烈建议在原始出处查看此文。 RSA是什么:RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。目前该加密方式广泛用于网上银行、数字签名等场合。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。 Op...阅读全文

博文 2019-04-04 09:49:51 www.allocmem.com

芝麻分从本地mongo中获取有效数据工具

###引言: 起因:java接入芝麻分,接口数据为了提高效率,需要储存在mongo中,若接口调用则优先从本地mongo库中查询是否存在有效数据。 ###mongo查询: import com.alibaba.fastjson.util.TypeUtils; import com.lemon.datamarket.dao.mongo.ManageRepository; import com.lemon.datamarket.model.DataTransferObject; import com.lemon.datamarket.utils.MongoDBUtils; import com.lemon.datamarket.utils.zhima.AliConstants; import co...阅读全文

博文 2019-04-04 09:42:07 www.allocmem.com

tomcat配置https

搭建环境: ubuntu 16.04 LTS apache tomcat 7 java 7 搭建过程: 1. 服务端利用jdk自带的keytool生成server.keystore,命令如下: keytool -genkey -alias tomcat -keyalg RSA -keypass anteoypasswd -storepass Envisi0n -keystore server.keystore -validity 3600 部分参数说明如下 - alias 要处理的条目的别名 - keyalg 密钥算法名称 - keysize 密钥位大小 - sigalg 签名算法名称 - destalias 目标别名 - dname 唯一判别名 - startdate 证书有效期开始日期...阅读全文

博文 2019-04-04 09:47:38 www.allocmem.com

关于java部分知识点的总结(二)

之前一直使用云笔记写自己遇到的一些体会,最近因为工作需要,准备回头梳理下以前自己学习的知识点,想把以前的记录下载博客里,既方便自己以后查阅,同时也能让自己有一个更深刻的记忆。 关于反射: super.getClass() 得到的依然是runtime当前类,若要得到真正的父类,需要用super.getClass().getSuperclass() 虽然这里写的是super,但其实用this也一样 Integer i01=59 的时候,会调用 Integer 的 valueOf 方法, 1 2 3 4 5 publicstaticInteger valueOf(inti) { assertIntegerCache.high>= 127; if(i >= IntegerCache.low&& i ...阅读全文

博文 2019-04-04 09:44:16 www.allocmem.com

关于java部分知识点的总结(一)

之前一直使用云笔记写自己遇到的一些体会,最近因为工作需要,准备回头梳理下以前自己学习的知识点,想把以前的记录下载博客里,既方便自己以后查阅,同时也能让自己有一个更深刻的记忆。 Cannot use this in a static context 在一个static代码块或者是static方法中,不能使用this和supper,因为static在jvm加载时就会初始化,而此时this和super可能并不存在。构造器也是隐式的static方法(关于以前记录的言论,但我现在google并没有找不出相应的资料) 延伸:关于static关键字: static修饰成员变量:静态变量,直接通过类名访问 static修饰成员方法:静态方法,直接通过类名访问 static修饰代码块:静态代码块,当JVM加载...阅读全文

博文 2019-04-04 09:44:08 www.allocmem.com

Java快速排序的具体实现

最开始写快速排序花了不少时间,其实关于排序算法,最重要的是首先你要理解,各种排序算法的原理是什么,当你理解了具体的实现原理再来写程序的时候你就会觉得很轻松了。不多说,直接上代码: package Algorithm.sort; /** * 快速排序的实现 * @author zhoudafu * */ public class QuickSort { public void quickSort(int[] a,int low,int high){ int i = low; int j = high; int key = a[low]; //分治递归结束判断 if(i == j){ return; } while(true){ while(i阅读全文

博文 2019-04-04 09:44:33 www.allocmem.com

[转]Java中的事务——JDBC事务和JTA事务

本文转载自http://www.hollischuang.com/archives/1658 Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。 常见的容器事务如Spring事务,容器事务主要是J2EE应用服务器提供的,容器事务大多是基于JTA完成,这是一个基于JNDI的,相当复杂的API实现。所以本文暂不讨论容器事务。本文主要介绍J2EE开发中两个比较基本的事务:JDBC事务和JTA事务。 JDBC事务 JDBC的一切行为包括事务是基于一个Connection的,在JDBC中是通过Connection对象进行事务管理。在JDBC中,常用的和事务相关的方法是: setAutoCommit、commit、rollback等。 Java_j...阅读全文

博文 2019-04-04 09:46:22 www.allocmem.com

自己写GoBinaryHead 二叉堆binaryheap实现优先队列(堆)

##前言: java GoBinaryHead二叉堆binaryheap实现优先队列(堆) 1. 二叉堆是完全二叉树 因为完全二叉数的规律(root始终最小) 用数组实现此数据结构优于链表 2. ,注意在插入和删除时,需要在数组实现的完全二叉树结构代码中,对原有节点数据进行上滤和下滤,插入时,和子树的根节点比较, 只有比子树根节点大才能满足定义, 否则循环交换位置。堆内元素向下移动为 下滤,删除后空余的位置,从上至下找最小儿子节点填充 3. 在printHeap()方法中对数组的遍历使用了去null操作。 4. 代码中已给出比较详尽注释。 ###正文: GoBinaryHeap.java package com.anteoy.dataStructuresAndAlgorithm.javav2...阅读全文

博文 2019-04-04 09:51:22 www.allocmem.com

java使用局部线程池为什么会造成线程泄露 - 无期(瑶瑶)

java使用局部线程池为什么会造成线程泄露 一、思考 - 造成泄露,肯定是无法被GC回收,那为什么局部线程池没有被回收,我们来通过源码一探究竟 这里先给出结论:ThreadPoolExecutor -> Worker -> Thread 由于存在这样的引用关系,并且 Thread 作为 GC Root ,所以无法被回收 二、通过ThreadPoolExecutor类对源码一探究竟 不详解 ExecutorService threadPool = new ThreadPoolExecutor( 1, 1, 300, TimeUnit.SECONDS, new LinkedBlockingQueue<>(1), Executors.defaultThreadFactory() ); thread...阅读全文

博文 2020-04-21 02:15:10 博客园

关于java部分知识点的总结(三)

之前一直使用云笔记写自己遇到的一些体会,最近因为工作需要,准备回头梳理下以前自己学习的知识点,想把以前的记录下载博客里,既方便自己以后查阅,同时也能让自己有一个更深刻的记忆。 dubbo构成: 2者(服务提供者【无状态】,服务消费者),2中心(服务注册中心,服务监控中心)。 (1) 连通性:连通流程 (2) 健状性:多数部分宕挂了,其余服务部分仍能正常使用 (3) 伸缩性:主要是伸,动态增加机器部署实例 public void ensureCapacity(int minCapacity) { int minExpand = (elementData != DEFAULTCAPACITY_EMPTY_ELEMENTDATA) // any size if not default elemen...阅读全文

博文 2019-04-04 09:44:24 www.allocmem.com

Java中方法多态以及多接口实现

###关于java中方法多态 通过多子类重写父类或接口实现。 通过同类同方法(方法名相同,参数数量或者类型不同)实现,这里主要注意Java中判断同一方法的标准是方法名和参数,与返回值无关,如下,可简要看着yy(int a) “` package com.anteoy.coreJava.polymorphism; /** Created by zhoudazhuang Date: 17-1-9 Time: 下午9:07 Description :java识别是否为重复冲突函数,依靠的是函数名和参数,与返回值无关,如yy(int a) */ public class Polymorphism { //注释代码编译不通过,即使参数都为空 不允许仅仅只有返回值不同的同名函数 /*String yy(...阅读全文

博文 2019-04-04 09:49:16 www.allocmem.com

java.util.Date,java.sql.Date及java.sql.Timestamp

java.sql.Date及java.sql.Timestamp继承自java.util.Date ,三个类都可以使用getTime()进行互换,java.util.Date有无参构造方法获取当前时间,其余两个没有。Timestamp为时间戳,和sql.Date的精确度一样,但表示当前时间更加方便(另外在hibernate中使用idea自动生成表的pojo时,会把sql.Date写为Timestamp),部分示例如下: package test; import java.sql.Date; import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; /** * C...阅读全文

博文 2019-04-04 09:46:14 www.allocmem.com

java递归简析

引言: 1. 给定一个整数,依次打印其没每位上的数字 想法: 1. 把数字转为String,再转为char,最后放入char[],逐个打印 2. 递归 代码: package com.anteoy.dataStructuresAndAlgorithm.javav2; /** * Created by zhoudazhuang on 17-2-16. * Description: */ public class PrintString { public static void main(String [] args) { printStrs(123456789); printByte(123456); printString(123456); } /** * 逐个字符打印所给整数 * @par...阅读全文

博文 2019-04-04 09:49:59 www.allocmem.com

自己写ArraryList GoArrayList

前言: java ArrayList的简易实现,代码中注释比较详尽,通俗易懂。 正文: GoArrayList.java package com.anteoy.dataStructuresAndAlgorithm.javav2.my; import java.util.Iterator; import java.util.NoSuchElementException; /** * Created by zhoudazhuang on 17-3-1. * Description: 简易Arrarylist实现 */ public class GoArrayList implements Iterable { //定义默认容量 private static final int DEF...阅读全文

博文 2019-04-04 09:50:42 www.allocmem.com

java构造函数以及static关键字

java构造函数以及static关键字 Author anteoy@gmail.com | Posted 2017-01-03 11:41:00 ###关于java构造器 原本无显示编码构造器,则有一个默认的隐式(隐藏的无参构造器),但是,当显示指定了构造器,则这个默认隐式的构造器将不存在,比如此时无法new无参的构造器(除非显示地编写声明无参的构造函数)。如下: “` package com.anteoy.coreJava.constructor; /** Created by zhoudazhuang Date: 17-1-3 Time: 上午10:46 Description : */ public class TestObj { public TestObj(){ } public ...阅读全文

博文 2019-04-04 09:49:08 www.allocmem.com

自己写GoBinarySearchTree 二叉查找树

前言: java GoBinarySearchTree的简易实现,代码中注释比较详尽,通俗易懂,注意事项亦在注解中标明。 正文: GoBinarySearchTree.java package com.anteoy.dataStructuresAndAlgorithm.javav2.my; /** * Created by zhoudazhuang on 17-3-2. * Description: AnyType extends Comparable * 注意这里的extends 接口 不能使用implements AnyType已经是泛型 不能使用 * compareTo这里是多态 root节点在插入过程中是变化的 如在root1 中插入节点root2 ...阅读全文

博文 2019-04-04 09:51:14 www.allocmem.com

AbstractQueuedSynchronizer的介绍和原理分析

感谢同事【魏鹏】投递本稿。 Dedicate to Molly. 简介 提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架。该同步器(以下简称同步器)利用了一个int来表示状态,期望它能够成为实现大部分同步需求的基础。使用的方法是继承,子类通过继承同步器并需要实现它的方法来管理其状态,管理的方式就是通过类似acquire和release的方式来操纵状态。然而多线程环境中对状态的操纵必须确保原子性,因此子类对于状态的把握,需要使用这个同步器提供的以下三个方法对状态进行操作: java.util.concurrent.locks.AbstractQueuedSynchronizer.getState() java.util.concurrent.locks.Abstract...阅读全文

博文 2019-12-04 08:36:15 并发编程网 – ifeve.com

深信服ssl

ps: 原本我是写得比较详细的,写了一大堆,结果突然有道云笔记网页版自动给我刷新了,关键是刷新过后之前写的内容啥都没有。我目前先把安装过程的简略笔记放出来吧,如果有疑问,可以下面评论给我留言,我看到就会回复。 安装坑爹 ssl easyconnect 的公司vpn踩坑记录 目前去我们那个下载页面,发现是老版本,不支持这个easyconnect linux的客户端,于是只能走浏览器的applet了。 现在多数主流浏览器为了安全已经废弃并禁止了applet在浏览器上的运行。被迫选择firefox降级到49。 安装坑爹的applet执行环境来了 jdk1.8 也就是用jre1.8 然后找到了bin下的ControlPannel给予域名例外权限,正常运行,但是就是访问不能成功,试了好久还是不行。 被...阅读全文

博文 2019-04-04 09:57:36 vpn在linux ubunt16.04中安装实测笔记

使用kryo做序列化会遇到的几个坑_paoma_1008的博客

Kryo 序列化与反序列化一些问题 gaording的博客 03-27 1792 公司其他组有个公共的maven依赖包中的序列化与反序列化采用了kryo,所以我在新代码中也测试了下kryo,测试的时候有几个问题记录如下: 1.kryo反序列化时是通过反射默认调用类的无参构造函数,如果类或者类的对象属性没有无参构造构造函数,则会抛出反序列化失败的异常,解决方法可以写一个继承kryo类的子类,重新实现通过反射去获取实例的方法,参考博客:https://vyloy.iteye.... Redis使用kryo来进行序列化遇到的问题 qq_28600087的博客 04-09 1876 1.通过spring-data-redis集成redis,使用kryo的方式来序列化value值,kryo是一款高性能...阅读全文

博文 2022-03-23 12:56:04 CSDN博客

Antlr4简易快速入门

1. 简介 Antlr (ANother Tool for Language Recognition) 是一个强大的跨语言语法解析器,可以用来读取、处理、执行或翻译结构化文本或二进制文件。它被广泛用来构建语言,工具和框架。Antlr可以从语法上来生成一个可以构建和遍历解析树的解析器。2. 谁在使用HiveSparkOraclePrestoElasticsearch3. 常见的语法分析器AntlrJavaccSqlParser (位于Alibaba的Druid库中)其中Antlr和Javacc都是现代的语法解析器,两者都很优秀,其中Antlr要更胜一筹。而SqlParser只能解析sql语句,功能比较单一。 :本人基于Antlr和SqlParser分别写了一套elasticsearch-sql...阅读全文

博文 2020-09-16 09:35:11 知乎

Spark入门之DataFrame/DataSet - justcodeit

目录Part I. Gentle Overview of Big Data and SparkOverview1.基本架构2.基本概念3.例子(可跳过)Spark工具箱1.Datasets: Type-Safe Structured APIs2.Structured Streaming3.Machine Learning and Advanced Analytics4.Lower-Level APIsPart II. Structured APIs—DataFrames, SQL, and DatasetsStructured API Overview1.Spark Types2.Structured API ExecutionBasic Structured Operations1.Sch...阅读全文

博文 2021-02-09 06:06:18 博客园

并发编程

TIP 本文主要是介绍 并发编程-JUC简介 。 1. JUC 简介2. volatile 关键字3. i++ 的原子性问题3.1 CAS 算法4. 并发容器类4.1 ConcurrentHashMap4.2 CountDownLatch(闭锁)5. 创建执行线程的方式三6. 同步锁(Lock)7. ReadWriteLock(读写锁)8. 线程同步锁9. 线程池9.1 线程调度10 Fork/Join 框架参考文章 # 导读【重要】 进入Java多线程进阶篇的学习。初学者通过基础篇的学习,应该已经对多线程的初步使用有了基本概念和掌握。多线程这块知识的学习,真正的难点不在于多线程程序的逻辑有多复杂,而在于理清J.U.C包中各个多线程工具类之间的关系、特点及其使用场景(从整体到局部、高屋建瓴,...阅读全文

博文 2021-12-26 14:31:56 JUC简介 | 智能后端和架构

MapReduce:实现join的几种方法_sofuzi的博客

reduce side join reduce side join是一种最简单的join方式,其主要思想如下: 在map阶段,map函数同时读取两个文件File1和File2,为了区分两种来源的key/value数据对,对每条数据打一个标签> (tag),比如:tag=0表示来自文件File1,tag=2表示来自文件File2。即:map阶段的主要任务是对不同文件中的数据打标签。> 在reduce阶段,reduce函数获取key相同的来自File1和File2文件的value list, 然后对于同一个key,对File1和File2中的数据进行join(笛卡尔乘积)。即:reduce阶段进行实际的连接操作。 map side join 之所以存在reduce side join,是因为在m...阅读全文

博文 2021-01-12 08:20:45 CSDN博客

CFR - another java decompiler批量反编译jar文件

Oracle 12C RAC modifying scan configuration Oracle modify time zone In depth study on the relationship between Oracle DB server system time modification and SCN Oracle block SCN / commit SCN / cleanup SCN description The first bullet in Oracle ASM Translation Series: Basics ASM Au, extensions, mirroring and failgroups Every programmer should learn ...阅读全文

博文 2022-07-27 13:31:44 编程知识

java和golang中的unsafe包

首先聊聊反射 java和golang都有各自的反射机制,为什么标准库会提供反射机制呢? 反射(reflection)允许程序在运行时(runtime)检查、修改程序(比如对象,struct等)的结构与行为,跳过编译检查,越过访问权限,运行时对象生成,方法调用等。如果没有反射,那么需要完全手动进行硬编码,比如如果没有反射,那么在spring的ioc容器管理实现就需要我们使用new来创建对象,那么也就不叫spring ioc,不会有spring ioc的诞生了。 静态编译(多数静态语言):在编译时确定类型,绑定对象。 动态编译(多数动态语言):运行时确定类型,绑定对象。可以实现动态创建对象和编译,体现出很大的灵活性(特别是在J2EE的开发中它的灵活性就表现的十分明显)。通过反射机制我们可以获得类...阅读全文

博文 2019-04-03 14:27:58 www.allocmem.com

JVM1.8参数大全

前言碎语 JVM内存模型,java GC垃圾内存回收,Jvm性能调优等等是个老生常谈的话题,故将官方JVM参数详情直译(Google翻译)记录在此,以备做jvm参数调优之时方便查询,同时给大家提供便利 jvm1.8参数详情: -Xcomp 在第一次调用时强制编译方法。默认情况下,客户端VM(-client)执行1,000个已解释的方法调用,Server VM(-server)执行10,000个已解释的方法调用以收集有效编译的信息。指定该-Xcomp选项会禁用已解释的方法调用,从而以牺牲效率为代价来提高编译性能。 您还可以使用该-XX:CompileThreshold选项在编译之前更改已解释的方法调用的数量。 -Xloggc:filename 设置应将重定向的GC事件信息重定向到的文件以进行日...阅读全文

博文 2020-07-28 06:52:44 jvm性能调优速查手册 | KL博客

错误:Unable to locate Spring NamespaceHandler for XML schema_裴大帅2020_新浪博客

一、错误背景: 在java程序中加入了spring的成分,然后使用mvn clean package -Dmaven.test.skip=true进行打包,打包完毕后通过java -jar xx.jar执行程序,结果就报错了。更加详细的错误见如下: [QC] WARN [main] org.springframework.context.support.AbstractApplicationContext.refresh(546) | Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.parsing.BeanDe...阅读全文

博文 2020-12-11 03:14:35 blog.sina.com.cn

查看堆外内存_运维_浅蓝浅蓝

Java堆外内存排查小结 06-29 阅读数 1万+ 简介JVM堆外内存难排查但经常会出现问题,这可能是目前最全的JVM堆外内存排查思路。通过本文,你应该了解:pmap命令gdb命令perf命令内存RSS、VSZ的区别javaNMT起因这几天遇到一个比较... 博文 来自: 小姐姐味道 阿里巴巴 Arthas 3.1.0版本:在线教程、内存编译器和强大的自动补全 02-14 阅读数 52 Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。从Arthas上个版本发布,已经过去两个多月了,Arthas 3.1.0版本不仅带来大家投票出来的新LOGO,还带来强大的新功能和更... 博文 来自: weixin_33975951的博客 JVM堆外内存问题排查 07-15 阅读数 75...阅读全文

博文 2020-04-22 10:34:46 CSDN博客