Skip to content

Instantly share code, notes, and snippets.

@dangshanli
dangshanli / InterruptibleSocketTest.java
Created September 24, 2020 14:14
使用ChannelSocket创建可响应中断的Socket Client
import javax.swing.*;
import java.awt.*;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.channels.SocketChannel;
@dangshanli
dangshanli / ObjStreamTest.java
Last active September 25, 2020 05:41
ObjectInputStream、ObjectOutputStream使用示例
import java.io.*;
import java.time.LocalDate;
public class ObjStreamTest {
public static void main(String[] args) throws IOException, ClassNotFoundException {
Employee harry = new Employee("harry",500,1990,11,13);
Manager carl = new Manager("carl",750,1999,12,22,harry);
Manager tony = new Manager("tony",850,1899,1,29,harry);
@dangshanli
dangshanli / ProxyTest.java
Created September 25, 2020 05:25
Proxy代理的简单示例
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.Arrays;
import java.util.Random;
public class ProxyTest {
public static void main(String[] args) {
Object[] elements = new Object[100];
for (int i = 0; i < elements.length; i++) {
@dangshanli
dangshanli / NetTest.java
Created September 25, 2020 05:29
Socket常见API
import java.io.*;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Objects;
import java.util.Scanner;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicInteger;
@dangshanli
dangshanli / RandomFileTest.java
Last active September 25, 2020 05:42
RandomFile的示例
import java.io.*;
import java.time.LocalDate;
import java.io.Serializable;
/**
* RandomFile的使用
* 读写Employee对象
*/
public class RandomFileTest {
public static void main(String[] args) throws IOException {
@dangshanli
dangshanli / TextFileTest.java
Created September 25, 2020 05:37
常见文本读写操作
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.time.LocalDate;
import java.util.Scanner;
public class TextFileTest {
public static void main(String[] args) {
Employee[] staff = new Employee[3];
@dangshanli
dangshanli / Planet.java
Created September 27, 2020 03:46
enum(枚举)的几种典型定义方式
//带实例域枚举,太阳系八行星
public enum Planet {
MERCURY(3.302E+23, 2.439E6),
VENUS(4.869e+24, 6.0e6),
EARTH(5.975e+24, 6.3e6),
MARS(6.4e+23, 3.39e6),
JUPITER(1.89e+27, 7.14e7),
SATURN(5.68e+26, 6.02e7),
URANUS(8.68e+25, 2.55e7),
NEPTUNE(1.02e+26, 2.477e7);
@dangshanli
dangshanli / PickApple.java
Created September 27, 2020 09:12
typical action parameterized ,行为参数化的典型使用方式
import lombok.Data;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* pick apples match the given conditions
*/
public class ApplePick {
@dangshanli
dangshanli / Stream_Op.md
Last active October 3, 2020 05:49
常见Stream API工具实践
操作 类型 返回类型 参数接口类型 签名
filter 中间 Stream Predicate T->boolean
distinc 中间(有状态 Stream
skip 中间(有状态) Stream long
limit 中间(有状态 Stream long
map 中间 Stream Function<T,R> T->R
flatMap 中间 Stream Fucntion<T,R> T->R
sorted 中间(有状态 Stream Camparator (T,T)->int
anyMatch 终端 boolean Predicate T->boolean
@dangshanli
dangshanli / FibGenerator.java
Last active October 5, 2020 18:15
【Stream API】 Stream.iterate(T,UnaryOperator<T>)生成斐波那契数列
import java.util.stream.Stream;
public class FibGenerator {
public static void main(String[] args) {
Stream.iterate(new int[]{0, 1}, t -> new int[]{t[1], t[0] + t[1]})
.limit(20)
.map(t -> t[0])
.forEach(System.out::println);
}
}