优化相关测试代码

This commit is contained in:
xuwujing
2018-10-23 15:51:29 +08:00
parent bf96f8ca72
commit 96ea3c3d42
39 changed files with 421 additions and 86 deletions

View File

@@ -0,0 +1,220 @@
package com.pancm.basics;
import java.math.BigInteger;
/**
* @Title: CalculateTest
* @Description: 运算符相关类
* @Version:1.0.0
* @author pancm
* @date 2018年10月18日
*/
public class CalculateTest {
public static void main(String[] args) {
//自增运算符测试
test1();
//运算符优先级测试
test2();
//位运算符
test3();
//赋值运算符
test4();
}
private static void test4() {
int a = 4;
a *= 5;
int b = 6;
b %=3;
int c = 9;
c |= a;
int d = 8;
d <<=2;
int e = 17;
e &=9;
int f = 16;
f ^=2;
System.out.println("赋值运算符测试开始");
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
System.out.println("赋值运算符测试结束");
/*
操作符 描述 例子
= 简单的赋值运算符,将右操作数的值赋给左侧操作数 C = A + B将把A + B得到的值赋给C
+ = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 C + = A等价于C = C + A
- = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 C - = A等价于C = C -
A
* = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 C * = A等价于C = C * A
/ = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 C / = A等价于C = C / A
= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 C= A等价于C = CA
<< = 左移位赋值运算符 C << = 2等价于C = C << 2
>> = 右移位赋值运算符 C >> = 2等价于C = C >> 2
= 按位与赋值运算符 C= 2等价于C = C2
^ = 按位异或赋值操作符 C ^ = 2等价于C = C ^ 2
| = 按位或赋值操作符 C | = 2等价于C = C | 2
*/
}
private static void test3() {
int a = 64>>>2;
int b = 2<<2;
int c = a&b;
int d = b|c;
int e = ~a;
int f = 60^13;
System.out.println("位运算符测试开始");
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
System.out.println("位运算符测试结束");
/*
*
十进制
A = 60B = 13
二进制
A = 0011 1100
B = 0000 1101
操作符 描述 例子
如果相对应位都是1则结果为1否则为0 AB得到12即0000 1100
| 如果相对应位都是0则结果为0否则为1 A | B得到61即 0011 1101
^ 如果相对应位值相同则结果为0否则为1 A ^ B得到49即 0011 0001
〜 按位取反运算符翻转操作数的每一位即0变成11变成0。 〜A得到-61即1100 0011
<< 按位左移运算符。左操作数按位左移右操作数指定的位数。 A << 2得到240即 1111 0000
>> 按位右移运算符。左操作数按位右移右操作数指定的位数。 A >> 2得到15即 1111
>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 A>>>2得到15即0000 1111
*/
}
//运算符优先级测试
private static void test2() {
int a = 2+3*4/2 + (5+4)*2;
int b = 2>>3+4/2-1;
int c = a++*3-b--;
int d = (a>c?4:5) + 4%2 << 3;
System.out.println("运算符优先级测试开始");
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println("运算符优先级测试结束");
/*
* 最高优先级的运算符在的表的最上面,最低优先级的在表的底部。
类别 操作符 关联性
后缀 () [] . (点操作符) 左到右
一元 + + - !〜 从右到左
乘性 * / 左到右
加性 + - 左到右
移位 >> >>> << 左到右
关系 >> = << = 左到右
相等 == != 左到右
按位与 左到右
按位异或 ^ 左到右
按位或 | 左到右
逻辑与 && 左到右
逻辑或 | | 左到右
条件 从右到左
赋值 = + = - = * = / == >> = << == ^ = | = 从右到左
逗号 左到右
*/
}
private static void test1() {
int a=1,z=1;
int b = a++;
int c = ++a;
int x = 2*++a;
int y = 2*b++;
System.out.println("自增运算符测试开始");
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(z++);
System.out.println(++z);
System.out.println(x);
System.out.println(y);
System.out.println("自增加运算符测试结束");
}
private static void test10() {
int i = 16;
// 16转换的二进制数据
int j = 10000;
// 8转换的二进制数据
int k = 1000;
// 4转换的二进制数据
int m = 100;
// 32转换的二进制数据
int n = 100000;
System.out.println("--" + (j & i));
System.out.println("--" + (k & i));
System.out.println("--" + (m & i));
System.out.println("--" + (n & i));
System.out.println("--" + decimal2Binary(i));
System.out.println("--" + biannary2Decimal(n));
//十进制转二进制
System.out.println("--" + Integer.toBinaryString(i));
/*
* 1. BigInteger的构造函数
BigInteger(String src)默认参数字符串为10进制数值
BigInteger(String src, int x)第2个参数x是指定第一个参数src的进制类型
2. toString方法
toString()默认把数值按10进制数值转化为字符串。
toString(int x)把数值按参数x的进制转化为字符串
*/
System.out.println("--" + new BigInteger(String.valueOf(i)).toString(2));
//二进制转十进制
System.out.println("--" + new BigInteger(String.valueOf(j),2).toString());
}
/**
* 十进制转二进制
*/
public static String decimal2Binary(int de) {
String numstr = "";
while (de > 0) {
int res = de % 2; // 除2 取余数作为二进制数
numstr = res + numstr;
de = de / 2;
}
return numstr;
}
/**
* 将二进制转换为10进制
* @param bi :待转换的二进制
* @return
*/
public static Integer biannary2Decimal(int bi) {
String binStr = bi + "";
Integer sum = 0;
int len = binStr.length();
for (int i = 1; i <= len; i++) {
// 第i位 的数字为:
int dt = Integer.parseInt(binStr.substring(i - 1, i));
sum += (int) Math.pow(2, len - i) * dt;
}
return sum;
}
}

View File

@@ -1,6 +1,5 @@
package com.pancm.basics;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

View File

@@ -1,9 +1,8 @@
package com.pancm.basics;
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Member;
import java.lang.reflect.Method;

View File

@@ -8,11 +8,6 @@ import org.apache.storm.topology.TopologyBuilder;
import org.apache.storm.tuple.Fields;
import org.apache.storm.utils.Utils;
import com.pancm.bigdata.storm.example1.ReportBolt;
import com.pancm.bigdata.storm.example1.SentenceSpout;
import com.pancm.bigdata.storm.example1.SplitSentenceBolt;
import com.pancm.bigdata.storm.example1.WordCountBolt;
/**
* 实现单词计数topology
*

View File

@@ -1,6 +1,7 @@
package com.pancm.bigdata.storm.test;
import java.util.Map;
import org.apache.storm.task.OutputCollector;
import org.apache.storm.task.TopologyContext;
import org.apache.storm.topology.OutputFieldsDeclarer;

View File

@@ -0,0 +1,116 @@
package com.pancm.design.command;
import java.util.ArrayList;
import java.util.List;
/**
* @Title: CommandTest
* @Description:命令模式
命令模式Command Pattern是一种数据驱动的设计模式它属于行为型模式。
请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令.
核心:将一个请求封装成一个对象,从而可以用不同的请求对客户进行参数化。
* @Version:1.0.0
* @author pancm
* @date 2018年8月8日
*/
public class CommandTest {
public static void main(String[] args) {
/*
* 基本使用
* 所需的角色
* 1、received 真正的命令执行对象 ;
* 2、Command ;
* 3、invoker 使用命令对象的入口;
*/
String name = "xuwujing";
Student student = new Student();
Command command1 = new LiTeacher(student);
Command command2 = new WangTeacher(student);
Invoker invoker =new Invoker();
invoker.setCommand(command1);
invoker.setCommand(command2);
invoker.executeCommand(name);
/*
* 优点: 1、降低了系统耦合度。 2、新的命令可以很容易添加到系统中去。
缺点:使用命令模式可能会导致某些系统有过多的具体命令类。
*/
}
}
//定义一个学生
class Student{
void cleanClassRoom(String name){
System.out.println(name+" 开始打扫教室...");
}
void doHomeWork(String name){
System.out.println(name+" 开始做作业...");
}
}
//定义一个命令抽象类
abstract class Command{
protected Student student;
public Command(Student student){
this.student = student;
}
//执行方法
abstract void execute(String name);
}
//将一个接收者和动作进行绑定,调用接收者相应的操作
class LiTeacher extends Command{
public LiTeacher(Student student) {
super(student);
}
@Override
void execute(String name) {
student.cleanClassRoom(name);
}
}
//将一个接收者和动作进行绑定,调用接收者相应的操作
class WangTeacher extends Command{
public WangTeacher(Student student) {
super(student);
}
@Override
void execute(String name) {
student.doHomeWork(name);
}
}
//用于执行这个请求
class Invoker {
private List<Command> commands = new ArrayList<Command>();
//添加这个命令
public void setCommand(Command command) {
//设置执行命令的
if(command.toString().indexOf("WangTeacher")>-1) {
System.out.println("不执行 WangTeacher 的命令!");
}else {
commands.add(command);
}
}
//执行这个命令
public void executeCommand(String name) {
commands.forEach(command->{
command.execute(name);
});
}
//撤销这个命令
public void undoCommand(Command command) {
commands.remove(command);
System.out.println("撤销该命令!");
}
}

View File

@@ -0,0 +1,8 @@
/**
* @Title: package-info
* @Description: 命令模式
* @Version:1.0.0
* @author pancm
* @date 2018年8月8日
*/
package com.pancm.design.command;

View File

@@ -1,5 +1,10 @@
package com.pancm.mq.kafka.examples;
import java.util.Arrays;
import java.util.Locale;
import java.util.Properties;
import java.util.concurrent.CountDownLatch;
import org.apache.kafka.clients.consumer.ConsumerConfig;
import org.apache.kafka.common.serialization.Serdes;
import org.apache.kafka.streams.KafkaStreams;
@@ -11,11 +16,6 @@ import org.apache.kafka.streams.kstream.KeyValueMapper;
import org.apache.kafka.streams.kstream.Produced;
import org.apache.kafka.streams.kstream.ValueMapper;
import java.util.Arrays;
import java.util.Locale;
import java.util.Properties;
import java.util.concurrent.CountDownLatch;
/**
* Demonstrates, using the high-level KStream DSL, how to implement the WordCount program
* that computes a simple word occurrence histogram from an input text.

View File

@@ -5,7 +5,6 @@ import java.util.Properties;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.serialization.StringSerializer;
import org.apache.kafka.common.utils.Utils;
import com.alibaba.fastjson.JSONObject;

View File

@@ -2,7 +2,13 @@ package com.pancm.mq.rabbitmq.demo;
import java.io.IOException;
import com.rabbitmq.client.*;
import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Consumer;
import com.rabbitmq.client.DefaultConsumer;
import com.rabbitmq.client.Envelope;
//消费者

View File

@@ -2,10 +2,11 @@ package com.pancm.mq.rabbitmq.demo;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
//生产者
public class RabbitProducer {

View File

@@ -3,9 +3,9 @@ package com.pancm.mq.rabbitmq.one2more;
import java.util.HashMap;
import java.util.Map;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.MessageProperties;
//生产者 ( Producer:数据的发送方)

View File

@@ -4,9 +4,9 @@ import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.util.concurrent.TimeoutException;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.QueueingConsumer;
public class ClientReceive1 {
public static final String queue_name="my_queue";

View File

@@ -4,9 +4,9 @@ import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.util.concurrent.TimeoutException;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.MessageProperties;
public class ClientSend1 {
public static final String queue_name="my_queue";

View File

@@ -3,11 +3,11 @@ import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;
//生产者 ( Producer:数据的发送方)
//单发送单接收 //单发送单接收 Send.java和Recv.java类
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
public class Send {

View File

@@ -1,13 +1,13 @@
package com.pancm.nio.netty.demo;
import java.io.IOException;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioSocketChannel;
import java.io.IOException;
/**
*
* Title: NettyClient

View File

@@ -4,8 +4,6 @@ package com.pancm.nio.netty.demo;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.socket.SocketChannel;
import io.netty.handler.codec.DelimiterBasedFrameDecoder;
import io.netty.handler.codec.Delimiters;
import io.netty.handler.codec.string.StringDecoder;
import io.netty.handler.codec.string.StringEncoder;
/**

View File

@@ -4,8 +4,6 @@ package com.pancm.nio.netty.demo;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.socket.SocketChannel;
import io.netty.handler.codec.DelimiterBasedFrameDecoder;
import io.netty.handler.codec.Delimiters;
import io.netty.handler.codec.string.StringDecoder;
import io.netty.handler.codec.string.StringEncoder;

View File

@@ -1,11 +1,11 @@
package com.pancm.nio.netty.demo;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import java.net.InetAddress;
import java.util.Date;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
/**
*

View File

@@ -1,10 +1,10 @@
package com.pancm.nio.netty.demo1;
import java.net.InetAddress;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import java.net.InetAddress;
/**
*
* Title: NettyServerHandler

View File

@@ -1,5 +1,7 @@
package com.pancm.nio.netty.demo2;
import java.io.IOException;
import io.netty.bootstrap.Bootstrap;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
@@ -13,8 +15,6 @@ import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioSocketChannel;
import io.netty.handler.codec.string.StringDecoder;
import java.io.IOException;
/**
*
* Title: NettyClientDemo2

View File

@@ -1,7 +1,8 @@
package com.pancm.nio.netty.demo2;
import java.net.InetSocketAddress;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelOption;
@@ -10,13 +11,9 @@ import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioServerSocketChannel;
import io.netty.handler.codec.DelimiterBasedFrameDecoder;
import io.netty.handler.codec.FixedLengthFrameDecoder;
import io.netty.handler.codec.LineBasedFrameDecoder;
import io.netty.handler.codec.string.StringDecoder;
import java.net.InetSocketAddress;
/**
*
* Title: NettyServerDemo2

View File

@@ -1,5 +1,7 @@
package com.pancm.nio.netty.demo3;
import java.io.IOException;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
import io.netty.channel.ChannelInitializer;
@@ -10,8 +12,6 @@ import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioSocketChannel;
import java.io.IOException;
/**
*
* Title: NettyClientDemo3

View File

@@ -1,6 +1,6 @@
package com.pancm.nio.netty.demo3;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
/**

View File

@@ -2,10 +2,9 @@ package com.pancm.nio.netty.demo3;
import java.util.List;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.ByteToMessageCodec;
import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.ByteToMessageCodec;
/**
*

View File

@@ -1,7 +1,7 @@
package com.pancm.nio.netty.demo3;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
/**

View File

@@ -1,9 +1,9 @@
package com.pancm.nio.netty.demo3;
import java.nio.charset.Charset;
import java.nio.charset.Charset;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;
/**

View File

@@ -1,15 +1,15 @@
package com.pancm.nio.netty.demo3;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import java.net.InetSocketAddress;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioServerSocketChannel;
import java.net.InetSocketAddress;
/**
*

View File

@@ -1,6 +1,6 @@
package com.pancm.nio.netty.demo3;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
/**

View File

@@ -1,5 +1,7 @@
package com.pancm.nio.netty.demo4;
import java.io.IOException;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
import io.netty.channel.ChannelInitializer;
@@ -11,8 +13,6 @@ import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioSocketChannel;
import io.netty.handler.codec.string.StringDecoder;
import java.io.IOException;
/**
*
* Title: NettyClientDemo4

View File

@@ -1,6 +1,6 @@
package com.pancm.nio.netty.demo4;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
/**

View File

@@ -1,5 +1,7 @@
package com.pancm.nio.netty.demo4;
import java.net.InetSocketAddress;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
@@ -10,8 +12,6 @@ import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioServerSocketChannel;
import io.netty.handler.codec.string.StringDecoder;
import java.net.InetSocketAddress;
/**
*

View File

@@ -1,8 +1,7 @@
package com.pancm.nio.netty.demo4;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.channel.SimpleChannelInboundHandler;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
/**
*

View File

@@ -1,5 +1,8 @@
package com.pancm.nio.netty.demo5;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
import io.netty.channel.ChannelInitializer;
@@ -13,9 +16,6 @@ import io.netty.handler.codec.string.StringDecoder;
import io.netty.handler.codec.string.StringEncoder;
import io.netty.handler.timeout.IdleStateHandler;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
/**
*
* Title: NettyClientDemo5

View File

@@ -1,5 +1,8 @@
package com.pancm.nio.netty.demo5;
import java.net.InetSocketAddress;
import java.util.concurrent.TimeUnit;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
@@ -12,9 +15,6 @@ import io.netty.channel.socket.nio.NioServerSocketChannel;
import io.netty.handler.codec.string.StringDecoder;
import io.netty.handler.codec.string.StringEncoder;
import io.netty.handler.timeout.IdleStateHandler;
import java.net.InetSocketAddress;
import java.util.concurrent.TimeUnit;
/**
*

View File

@@ -1,5 +1,7 @@
package com.pancm.nio.netty.demo6;
import java.net.InetAddress;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelFutureListener;
@@ -13,7 +15,6 @@ import io.netty.handler.codec.http.HttpMethod;
import io.netty.handler.codec.http.HttpResponseStatus;
import io.netty.handler.codec.http.HttpVersion;
import io.netty.util.CharsetUtil;
import java.net.InetAddress;
/**
*

View File

@@ -1,6 +1,7 @@
package com.pancm.others;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

View File

@@ -8,8 +8,8 @@ import java.util.Date;
*/
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

View File

@@ -2,9 +2,7 @@ package com.pancm.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import lombok.extern.log4j.Log4j;