- 博客(138)
- 资源 (1)
- 收藏
- 关注
原创 Python之高级函数-高级程序员与普通程序员的区别
python的高阶函数1、假如你想从一个考试分数的列表中删除所有的0分,怎么办?普通程序员:第一步:定义一个函数def remove_zero(yourList): newlist = [] for number in yourList: if number > 0: newlist.append(number) ...
2020-02-20 15:50:31
474
1
原创 python之中文分词
目录1、安装和使用jieba2、分词练习3、为jieba添加自定义的词典4、知识点普及1)分词文件怎么写2)jieba.cut()参数说明1、安装和使用jieba直接用命令:pip3 install jieba就可以了,如图所示表示成功。2、分词练习import jiebaif __name__ == '__main__': seg_gu=...
2020-02-17 18:39:41
726
原创 Python之经典案例---扑克发牌程序
目录1、 用Card类表示一张牌2、 用Hand表示一个牌手(玩家)3、用poke类表示一幅牌,可以看做拥有全部54张牌的牌手4、发牌主程序5、测试结果1、 用Card类表示一张牌# 一张牌的抽象class Card(): """A playing card""" RANKS = ['A','2','3','4','5','6','7','8...
2020-02-16 20:09:54
5688
6
原创 python实战篇---类
1、Python的类如何定义?class Fruit: # 类属性 price = 0 # 通过类名和对象名都可见 def __init__(self): self.__color="Red" # 定义和设置私有属性 self.__city = 'beijing' # 定义和设置私有属性 ...
2020-02-16 19:06:05
209
原创 初识Python
目录工具:mac笔记本, 安装了Python3.7.0; 编程工具:IDLE.列表:递归:迭代:工具:mac笔记本, 安装了Python3.7.0 ; 编程工具:IDLE.列表:movices = ["The Holy Grail", "The Life of Brian", "The Meaning of Life"]python的列表不用标识数据类型...
2020-02-10 13:09:17
254
2
原创 Prototype模式 通过复制生成实例
框架:1、接口package com.polo.proto.fremework;public interface Product extends Cloneable{ public abstract void use(String s); public abstract Product createClone();}2、使用者package com.p...
2020-02-08 19:50:36
131
原创 西红柿炒鸡蛋解释设计模式之模板模式
一、模板设计模式的核心模板模式的核心是:父类定好流程,具体的各个步骤交给子类们自己去实现。这样可以一类多用,不必因为一点类似的改动修改原来的接口或者代码。二、举例和代码/** * @program: data-structure * @description: 模板 * @author: Miller.FAN * @create: 2020-02-01 14:21 **/...
2020-02-01 14:48:25
453
原创 设计模式之遍历器模式 Iterator
一、 遍历器大家都用过,内部是如何实现的,该模式设计有什么内涵呢?二、遍历器模式的角色组成2个接口+3个类,无继承,有聚合和实现关系。三、代码举例1、遍历器接口public interface Iterator { public abstract boolean hasNext(); public abstract Object next();}2、...
2020-01-29 17:17:53
262
原创 Mysql慢日志的使用
1、获取慢日志的信息2、复制慢日志的路径,在C盘中搜索3、慢日志分析# Time: 2019-08-01T01:52:44.249356Z# User@Host: root[root] @ localhost [127.0.0.1] Id: 4043# Query_time: 11.743046 Lock_time: 0.000049 Rows_sent: 2400...
2020-01-06 15:52:00
172
原创 使用Gson,将javaBean转换成json格式
在pom文件中引入:<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --><dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artif...
2020-01-06 14:54:51
1015
原创 MySQL优化之IP地址的存储
背景:spring boot +Mybatis + MySql设计一个管理系统。数据库表设计:CREATE TABLE `NewTable` (`id` int(11) NOT NULL AUTO_INCREMENT ,`device_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAUL...
2019-12-31 11:04:44
356
原创 源码分析之WebSocketHandshake
一、基础知识1、英语补习Algotithm 算法; verify 验证; split 裂解。2、使用websocket交互流程客户端与服务端连接成功之前,使用的通信协议是 HTTP。连接成功后,使用的才是 WebSocket。3、规定 RFC6455 对客户端握手的规定,原文锚点链接为 看这里The opening handshake is intende...
2019-12-20 15:05:18
1537
原创 WebSocket协议与java实现
一、webSocket协议研究:研究源码发现有些域和方法的算法看不懂,不知道是什么含义。于是回来看看协议。网址:webSocket协议该协议的帧结构:FIN:判断这一帧数据是不是这一消息的最后一帧。RSV1、RSV2、RSV3: 必须是0,除非通信双方做了特别的协商Opcode: 4 bits 占有4位,定义了PayLoad Data的含义 我理解是代表帧的类型...
2019-12-19 15:38:25
813
原创 自己实现一套异常处理机制
1、异常定义import org.eclipse.paho.client.mqttv3.internal.MessageCatalog;public class MqttException extends Exception { private static final long serialVersionUID = 300L; public static final ...
2019-12-18 16:06:14
366
原创 java字节数组和字符数组的互转算法
1、字节数组转字符数组 public static char[] toChar(byte[] b) { if (b == null) { return null; } else { char[] c = new char[b.length / 2]; int i = 0; ...
2019-12-17 18:42:21
386
1
原创 org.eclipse.paho.client.mqttv3源码分析,2类遍历方式
每天一段源码分析:import java.util.Properties;private static final String[] propertyKeys = new String[]{"com.ibm.ssl.protocol", "com.ibm.ssl.contextProvider", "com.ibm.ssl.keyStore", "com.ibm.ssl.keyStore...
2019-12-17 15:19:51
241
原创 加密算法之模糊算法
1、原理 :与给定的byte[8] 内的值取异或2、代码 private static final byte[] key = new byte[]{-99, -89, -39, -128, 5, -72, -119, -100}; public static String obfuscate(char[] password) { if (password ...
2019-12-13 17:25:29
492
原创 Base64编码原理解析
1、算法原理:将待转换的字符串每3个字节分为一组,得到一个占24位的数;将得到的24位数每6位分为1组,一共分为4组;每组前面加00 ,转成4个字节;新得到的4个字节,每个字节代表的数转成10进制与给定的字符数组中的一个元素对应。 private static final char[] PWDCHARS_ARRAY = "./0123456789ABCDEFGHIJKLMNO...
2019-12-13 15:44:13
188
原创 spring cloud 项目新建的modle,打包时报错找不到主类Unable to find main class
现象:Unable to find main class Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.0.4.RELEASE:repackage (default) on project spring-cloud-kubeedge-core: Execution default of ...
2019-12-11 16:04:36
595
原创 MQTT的java实现org.eclipse.paho.client.mqttv3 源码分析(一)
org.eclipse.paho.client.mqttv3.internal.wire : MQTT协议中报文信息,里面包含有心跳包、订阅包、发布包、确认包等。1、MqttWireMessage源码package com.miller.springcloudkebeedgeprotocol.coap;/** * @program: spri...
2019-12-10 17:59:12
7423
原创 java的类加载的分类和加载器之间的关系
java虚拟机的ClassLoader加载类时选择加载器按照 启动类加载器--->扩展类加载器--->应用类加载器--->自定义类加载器的循序进行。当系统使用一个类时,需要检查这个类是否已经被加载,会先从底层类加载器进行判断。在这些类加载器中,启动类时C代码编写的,并且在java中没有对象与之对应。系统的核心类就是由启动类加载器进行加载的,他也是虚拟机的核心组件。扩展...
2019-12-07 11:23:42
525
原创 和虚拟机谈恋爱的那些事儿
java程序员离不开虚拟机,一个好的程序必须是和虚拟机配合很好的程序,程序写的再牛逼,和虚拟机的特性不匹配,结果是弄巧成拙。你必须和虚拟机谈一场恋爱,要想谈好恋爱,你就得了解虚拟机的结构、原理、特性。一、虚拟机基础知识1、虚拟机的分类系统虚拟机和程序虚拟机;大名鼎鼎的Visual Box和VMware就是系统虚拟机,而JVM,也就是java虚拟机其实式程序虚拟机。2、java虚拟机...
2019-12-04 13:51:29
179
原创 spring 条件化的bean
1、假设你希望一个bean只有在应用的类路径下包含特定的库时才创建。或者希望某个bean只有在另外的特定的bean也声明了之后才创建。还可以设置某个特定的环境变量设置之后,才会创建某个bean。2、什么地方会用到呢?当创建bean是附件条件的时候。3、举个例子package org.springframework.cloud.kubernetes.config.reload;...
2019-11-28 17:32:32
228
原创 求助帅哥程序员,不帅的不用进来
spring cloud K8s源码阅读:package org.springframework.cloud.kubernetes.ribbon;import java.lang.reflect.Field;import java.lang.reflect.Modifier;import java.lang.reflect.ParameterizedType;import java...
2019-11-25 11:20:41
242
2
原创 spring boot 中使用redis的简单方法
1、首先要用Docker将redis启动起来,使用默认端口号即可。2、在pom文件中导入依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan...
2019-11-22 12:43:08
157
1
原创 KubeEdge深度研究和学习
1、KubeEdge是什么?KubeEdge是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于kubernetes构建,并为网络应用程序提供基础架构支持。云和边缘之间的部署和元数据同步。 KubeEdge使用Apache 2.0许可。并且绝对可以免费用于个人或商业用途。我们欢迎贡献者!KubeEdge 的目标是创建一个开放平台,使能边缘计算,将容器化应用编排功能扩展到...
2019-11-21 16:49:56
886
原创 面向切面编程Spring
最近在学习面向切面编程,把一个Dome贴出来,大家一起学习。1、定义一个目标,这里使用接口。package com.miller.emperor.aspects;//切面中切面的目标对象public interface Performance { public void perform();}2、目标接口的实现类package com.miller.emper...
2019-11-20 15:16:04
214
1
原创 Spring MVC 之DispacherServlet源码分析
1、DispacherServlet源码分析//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package org.springframework.web.servlet;import java.io.IOException;...
2019-11-20 09:58:39
265
原创 kubernetes入门教程
1、虚拟化技术时云技术的基础。2、应用的容器化,呼唤容器编排技术的出现。3、2015年7月k8s1.0版本发布,占有80%的市场。4、kubernetes物理上采用Master/node的形式,master一般有3个,Node数量不限。5、master的组件包括API server,Scheduler,Controller manager。6、node主要有Kublet,kub...
2019-11-19 15:47:56
576
原创 用CyclicBarrier聊聊赵匡胤建立北宋,一统天下的过程
一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。1、用枚举表示前政权和地方割据政权import lombok.Getter;pub...
2019-11-14 14:16:54
275
1
原创 用程序员的语言:5000工科男抢200女同学做女朋友,怎么完美解决
1、有人在群里喊为啥我的打印结果不对,我一看写的还挺有意思,不仅用到了Semaphore,还有线程管控和排序问题。就帮着改了一下。原来的代码是这样写的:public class JiShuDemo { /** * @Description: 当只有一个线程去执行加一的操作时,最终的结果都是等于总数5000 * 但是...
2019-11-14 10:54:20
958
3
原创 自旋锁的实现
1、请自己写一个自旋锁。OK,不仅写好了;而且验证一遍。/** * @program: mybatis * @description: 自己实现一个自旋锁 * @author: Miller.FAN * @create: 2019-11-13 14:19 **/public class MyLock { private AtomicReference atomicR...
2019-11-13 14:39:27
419
3
原创 HashMap是线程不安全的?证明它,并提出线程安全的解决办法!
1、线程不安全的例子public class testHashMapUnsafe { public static void main(String[] args) { HashMap<String,Object> map = new HashMap<String,Object>(); for (int i = 0; i <...
2019-11-12 18:26:50
484
原创 HashSet线程不安全,证明它,并且提出线程安全的解决办法
1、HashSet线程不安全public class testHashSetUnsafe { public static void main(String[] args) { HashSet<String> set = new HashSet<>(); for (int i = 0; i <30; i++) { ...
2019-11-12 18:13:14
1827
原创 ArrayList线程不安全,如何改进?CopyOnWriteArrayList
1、ArrayList线程不安全测试代码public class testArrayListUnsafe { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.forEach(Syste...
2019-11-12 17:33:59
190
1
原创 CAS是什么?AtomicInteger为什么使用CAS? AtomicInteger的底层原理是什么?
1、CAS 即 Compare -And- Swap 比较并交换;2、 通过AtomicInteger.compareAndSet();方法能够解决多线程模式下i++计算结果出现的数据不一致的问题。/** * @program: mybatis * @description: CAS * @author: Miller.FAN * @create: 2019-11-11 ...
2019-11-12 09:47:25
477
2
原创 用双端检锁机制不能保证线程安全的原因是什么?
用双端检锁机制不能保证线程安全,原因是存在指令重排。/** * @program: mybatis * @description: * @author: Miller.FAN * @create: 2019-11-11 17:49 **/public class SingletonDome { private static SingletonDome instance...
2019-11-11 18:16:09
1014
原创 EnumMap类的学习和使用
1、类图;2、源码分析;3、使用第一步:类图EnumMap继承AbstractMap实现Serializable和Cloneable接口public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> implements java.io.Serializa...
2019-11-11 10:02:16
398
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅