java

ByteBuffer and Byte Array

China☆狼群 提交于 2021-02-20 07:39:11
问题 Problem I need to convert two ints and a string of variable length to bytes. What I did I converted each data type into a byte array and then added them into a byte buffer. Of which right after that I will copy that buffer to one byte array, as shown below. byte[] nameByteArray = cityName.getBytes(); byte[] xByteArray = ByteBuffer.allocate(4).putInt(x).array(); byte[] yByteArray = ByteBuffer.allocate(4).putInt(y).array(); ByteBuffer byteBuffer = ByteBuffer.allocate(nameByteArray.length +

白话burp suite渗透测试利器的英文(入门版)

不想你离开。 提交于 2021-02-20 07:39:05
技术博客的可读性非常重要,这也是技术博客写作的重要原则。 电脑系统是kali linux2018.1版本,64位 burpsuite_pro_v1.7.11破解版(含下载) 链接:http://www.freebuf.com/sectool/121992.html 虽然我很支持使用正版,但是如果有破解版可以尝试入门,实在是太好了。 除了这个连接,还有独自等待博客 BurpSuitePro v1.7.31及注册机下载 链接:https://www.waitalone.cn/burpsuite1731-keygen.html BurpSuitePro v1.7.32及注册机下载 链接:https://www.waitalone.cn/burpsuite-v1732.html 我想这些完全足够使用了。 我用的是第一个下载源,下载解压,编写脚本命名为burp.sh,脚本所在文件夹启动脚本即可sh burp.sh,默认安装就好。 #!/bin/bash java -jar /root/burpsuite/BurpHelper.jar 这里不说如何使用,因为这个工具的使用是有很多可以研究的。这里想说说上面的英语单词的意思,因为这个是全英文版的。 burp suite官方网站:https://portswigger.net/burp/,社区免费版,专业版两种可以选择,后者是每年每人349美元。

Java内存泄漏分析系列之二:jstack生成的Thread Dump日志结构解析

被刻印的时光 ゝ 提交于 2021-02-20 07:38:42
原文地址:http://www.javatang.com 一个典型的thread dump文件主要由一下几个部分组成: 上图将JVM上的线程堆栈信息和线程信息做了详细的拆解。 第一部分:Full thread dump identifier 这一部分是内容最开始的部分,展示了快照文件的生成时间和JVM的版本信息。 2017-10-19 10:46:44 Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.79-b02 mixed mode): 第二部分:Java EE middleware, third party & custom application Threads 这是整个文件的核心部分,里面展示了JavaEE容器(如tomcat、resin等)、自己的程序中所使用的线程信息。这一部分详细的含义见 Java内存泄漏分析系列之四:jstack生成的Thread Dump日志线程状态分析 。 "resin-22129" daemon prio=10 tid=0x00007fbe5c34e000 nid=0x4cb1 waiting on condition [0x00007fbe4ff7c000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe

LeetCode:交替打印【1115】

主宰稳场 提交于 2021-02-20 07:38:29
LeetCode:交替打印【1115】 题目描述 我们提供一个类: class FooBar { public void foo() { for (int i = 0; i < n; i++) { print("foo"); } } public void bar() { for (int i = 0; i < n; i++) { print("bar"); } } } 两个不同的线程将会共用一个 FooBar 实例。其中一个线程将会调用 foo() 方法,另一个线程将会调用 bar() 方法。 请设计修改程序,以确保 "foobar" 被输出 n 次。 示例 1: 输入: n = 1 输出: "foobar" 解释: 这里有两个线程被异步启动。其中一个调用 foo() 方法, 另一个调用 bar() 方法,"foobar" 将被输出一次。 示例 2: 输入: n = 2 输出: "foobarfoobar" 解释: "foobar" 将被输出两次。 题目分析   在解决1114问题按序打印时,我们曾引入了一个Java多线程工具类倒计时器(CountDownLatch),这里要介绍另外一个工具类信号量(Semaphore)。 了解更多   信号量(Semaphore)由一个值和一个指针组成,指针指向等待该信号量的进程。信号量的值表示相应资源的使用情况。信号量S≥0时

Kafka 使用Java实现数据的生产和消费demo

我的梦境 提交于 2021-02-20 07:37:27
前言 在 上一篇 中讲述如何搭建kafka集群,本篇则讲述如何简单的使用 kafka 。不过在使用kafka的时候,还是应该简单的了解下kafka。 Kafka的介绍 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 Kafka 有如下特性: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输。 支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输。 同时支持离线数据处理和实时数据处理。 Scale out:支持在线水平扩展。 kafka的术语 Broker:Kafka集群包含一个或多个服务器,这种服务器被称为broker。 Topic:每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处) Partition:Partition是物理上的概念,每个Topic包含一个或多个Partition。 Producer:负责发布消息到Kafka broker。 Consumer

TestNg学习

谁说我不能喝 提交于 2021-02-20 07:06:50
参考:https://www.yiibai.com/testng/junit-vs-testng-comparison.html#article-start 1、JUnit缺点: 最初的设计,使用于单元测试,现在只用于各种测试。 不能依赖测试 配置控制欠佳(安装/拆卸) 侵入性(强制扩展类,并以某种方式命名方法) 静态编程模型(不必要的重新编译) 不适合管理复杂项目应用,JUnit复杂项目中测试非常棘手。 2、 TestNG的特点 注解 TestNG使用Java和面向对象的功能 支持综合类测试(例如,默认情况下,不用创建一个新的测试每个测试方法的类的实例) 独立的编译时测试代码和运行时配置/数据信息 灵活的运行时配置 主要介绍“测试组”。当编译测试,只要要求 TestNG 运行所有的“前端”的测试,或“快”,“慢”,“数据库”等 支持依赖测试方法,并行测试,负载测试,局部故障 灵活的插件API 支持多线程测试 二、TestNg基本注解 三、TestNG预期异常测试 1、 @Test (expectedExceptions = ArithmeticException . class ) 2、 @Test (expectedExceptions = { OrderUpdateException . class , OrderNotFoundException . class } ) 四

js动态生成表格

痴心易碎 提交于 2021-02-20 06:50:01
<div id="cnblogs_post_body" class="blogpost-body"><p>下面用js实现可以生成用户所需行数的表格。</p> <p>1.首先在body中填入下列代码,获取用户填入的行数值</p> <div class="cnblogs_code"><div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="复制代码"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></span></div> <pre><span style="color: #008080;"> 1</span> <span style="color: #0000ff;"><</span><span style="color: #800000;">table</span><span style="color: #0000ff;">></span> <span style="color: #008080;"> 2</span> <span style="color: #0000ff;"><<

EqualsIgnoreCase() not working as intended.

随声附和 提交于 2021-02-20 06:49:16
问题 When i run the following program it prints only equals says they are equal However From equalsIgnoreCase docs in java 8 we have : Two characters c1 and c2 are considered the same ignoring case if at least one of the following is true: • Applying the method java.lang.Character.toUpperCase(char) to each character produces the same result public class Test { public static void main(String[] args) { String string1 = "abc\u00DF"; String string2 = string1.toUpperCase(); if (string1.equalsIgnoreCase

Confused - Height of Binary tree

ⅰ亾dé卋堺 提交于 2021-02-20 06:47:11
问题 I'm somewhat confused between the logic of calculating the height of binary tree. Code 1 public static int findHeight(Tree node) { if(node == null) return 0; else { return 1+Math.max(findHeight(node.left), findHeight(node.right)); } } Code 2 public static int findHeight(Tree node) { if(node == null) return -1; else { return 1+Math.max(findHeight(node.left), findHeight(node.right)); } } I think, the second one is correct, since it gives the correct answer for below code :- Tree t4 = new Tree(4

EqualsIgnoreCase() not working as intended.

家住魔仙堡 提交于 2021-02-20 06:44:22
问题 When i run the following program it prints only equals says they are equal However From equalsIgnoreCase docs in java 8 we have : Two characters c1 and c2 are considered the same ignoring case if at least one of the following is true: • Applying the method java.lang.Character.toUpperCase(char) to each character produces the same result public class Test { public static void main(String[] args) { String string1 = "abc\u00DF"; String string2 = string1.toUpperCase(); if (string1.equalsIgnoreCase