删除源文件中的注释

我们定义三个状态:普通NORMAL、单行注释SINGLE以及多行注释MULTI;并定义行为:单行注释开始标志SINGLE_START、多行注释开始标志MULTI_START、单行注释结束标志SINGLE_END、多行注释结束标志MULTI_END、无行为NONE。每次根据字符串信息,判断当前位置的行

原来不只是fastjson,这个你每天都在用的类库也被爆过反序列化漏洞!

工作久了的话,就会慢慢有种感觉:代码都是人写的,是人写的代码就可能存在漏洞,这个是永远都无法避免的,任何牛X的程序员都不可能写出完全没有bug的代码!其实关于序列化的安全性问题,无论是Java原生的序列化技术还是很多其他的开源序列化工具,都曾经发生过。序列化的安全性,一直都是比较大的一个话题,我无意

终于把TCP协议与UDP协议给整明白了

网络编程有三个要素,分别是IP地址、端口号和通信协议,那本文主要讲述的是TCP与UDP这两种通信协议,以及编程的实现。首先,我们需要了解一下IP地址、端口号、通信协议的相关知识。一、IP地址网络中的计算机使用IP地址来进行唯一标识,IP地址有IPv4和IPv6两种类型。IPv4采用十进制或二进制表示

数据结构之堆

思考假如需要设计一种数据结构,用来存放整数,要求提供3个接口:添加元素获取最大值删除最大值如果使用动态数组、双向链表和二叉树实现这个数据结构对应的时间复杂度如下表所示:有没有更优的数据结构?使用堆,可以使得获取最大值的时间复杂度为O(1)、删除最大值和添加元素的时间复杂度为O(logn)。堆的介绍堆

单例模式详解

饿汉式packagecom.ph.single;//饿汉式单例模式publicclassHungry{//可能会浪费空间,开辟了空间,却没有使用privateHungry(){}privatefinalstaticHungryHUNGRY=newHungry();publicstaticHungry

Java调用微信支付

准备工作所需微信公众号信息配置APPID:绑定支付的APPID(必须配置)MCHID:商户号(必须配置)KEY:商户支付密钥,参考开户邮件设置(必须配置)APPSECRET:公众帐号secert(仅JSAPI支付的时候需要配置)我这个案例用的是尚硅谷一位老师提供的,这里不方便提供出来,需要大家自己找

Java Set集合去重

在开发中经常使用到Set集合去重,那么去重的原理是怎样实现的呢?在此文章记录一下去重原理!!!下面是set集合类图下面我们来跟踪一下执行过程;首先我们实例化一个Set对象;Set<8大基本类型>set=newHashSet<8大基本类型>();set.add(8大基本类型);

Java2万个整数数组求和

需求如下用多线程对2万个整数的数组计算和,并得到结果。具体题目计算任务,一个包含了2万个整数的数组,分拆了多个线程来进行并行计算,最后汇总出计算的结果。常见问题用下面博主写的没有方法的代码运行就会发现问题。运行多次后,会发现最终得到的结果不一样,并且不正确。这就是多线程互相争抢资源的结果,那么我们怎

字符串中字符出现重复字符

下面是总结的一些常见问题,以供大家参考第一次出现重复字符出现的重复字符出现字符串、字符还有次数出现次数最多的字符及次数classEclass{publicstaticvoidmain(String[]args){Stringstr="eeeejwurihewweafa";Ecla