优化相关测试代码
This commit is contained in:
220
src/main/java/com/pancm/basics/CalculateTest.java
Normal file
220
src/main/java/com/pancm/basics/CalculateTest.java
Normal 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 = C%A
|
||||
<< = 左移位赋值运算符 C << = 2等价于C = C << 2
|
||||
>> = 右移位赋值运算符 C >> = 2等价于C = C >> 2
|
||||
&= 按位与赋值运算符 C&= 2等价于C = C&2
|
||||
^ = 按位异或赋值操作符 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 = 60,B = 13
|
||||
二进制
|
||||
A = 0011 1100
|
||||
B = 0000 1101
|
||||
|
||||
操作符 描述 例子
|
||||
& 如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 1100
|
||||
| 如果相对应位都是0,则结果为0,否则为1 (A | B)得到61,即 0011 1101
|
||||
^ 如果相对应位值相同,则结果为0,否则为1 (A ^ B)得到49,即 0011 0001
|
||||
〜 按位取反运算符翻转操作数的每一位,即0变成1,1变成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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.pancm.basics;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
*
|
||||
|
||||
@@ -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;
|
||||
|
||||
116
src/main/java/com/pancm/design/command/CommandTest.java
Normal file
116
src/main/java/com/pancm/design/command/CommandTest.java
Normal 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("撤销该命令!");
|
||||
}
|
||||
|
||||
}
|
||||
8
src/main/java/com/pancm/design/command/package-info.java
Normal file
8
src/main/java/com/pancm/design/command/package-info.java
Normal file
@@ -0,0 +1,8 @@
|
||||
/**
|
||||
* @Title: package-info
|
||||
* @Description: 命令模式
|
||||
* @Version:1.0.0
|
||||
* @author pancm
|
||||
* @date 2018年8月8日
|
||||
*/
|
||||
package com.pancm.design.command;
|
||||
@@ -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.
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
//消费者
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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:数据的发送方)
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user