自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘滨浩的博客

互联网从业人员。来自民风淳朴的云南,曾就读于云南大学,勤劳朴质,坚持学习,相信技术改变世界,努力提高自己,在csdn记录成长中的点点滴滴,也愿意将所学所用分享出来,欢迎来访,vx: behico

  • 博客(151)
  • 资源 (1)
  • 收藏
  • 关注

原创 再也不担心问到Java集合了,一文讲透Java中的数据结构

数据结构作为每一个IT人不可回避的问题,而Java对于不同的数据结构提供了非常成熟的实现,这一个又一个实现既是面试中的难点,也是工作中必不可少的工具,在此,笔者经历漫长的剖析,将其抽丝剥茧的呈现出来,在此仅作抛砖引玉,望得诸君高见,若君能有所获在下甚是不亦乐乎,若有迷惑亦与诸君共求之!

2021-01-28 13:20:18 10847 85

原创 十块钱帮我做个视频网站吧,就带弹幕那种?基于websocket协议与netty实时视频弹幕交互实现

实时视频弹幕基于websocket协议与netty实时视频弹幕摘要1 技术选型1.1 netty1.2 WebSocket1.3 为什么做这样的技术选型。2 实现思路2.1 服务架构2.2 传输流程3 实现效果3.1 视频展示4 代码实现4.1 项目结构4.2 Java服务端4.2.1 先做一个netty nio的服务端:4.2.2 服务端的具体处理逻辑4.3 网页客户端实现5 小结基于websocket协议与netty实时视频弹幕摘要2021年了,还有不支持弹幕的视频网站吗,现在各种弹幕玩法层出不穷

2021-01-14 21:28:16 4574 36

原创 2021年了还有做某某管理系统的?springboot整合mysql快速搭建XX管理系统

XX管理系统摘要1 技术选型1.1 Mysql81.2 springboot21.3 模板引擎thymeleaf2 项目构建2.1 创建项目2.2 建表3 项目实现3.1 项目效果3.2 项目结构4 代码实现4.1 前台页面4.2 后台业务实现4.2.1 实体类Employee4.2.2 数据库操作层repo摘要对企业来说,人、物资、能源、资金、信息是5大重要资源。人、物资、能源、资金这些都是可见的有形资源,而信息是一种无形的资源。以前人们比较看重有形的资源,进入信息社会和知识经济时代以后,信息资源就显

2021-01-08 00:25:51 3701 48

原创 图片资源服务器?一小时手写http服务器提供资源服务

http服务器摘要一、什么是http服务器二、如何自己简单实现一个http服务器三、自己实现的http服务器四、Http服务器实现(Java)摘要web开发一直是行业热门技术,而要做web程序就离不开http服务器,现在主流的http服务器用的最广的如tomcat,apache。还有商用版本的各式各样的http服务器,而再行业类各种微服务,各种web开发技术层出不穷,都是基于这些服务器上的架构上的使用,并没有从本质上提高服务器运行的效率,笔者在研究http服务的过程中,就花了一早上来写了这样一个http

2021-01-01 13:19:24 5746 36

原创 翻译app上的图片文字信息提取好神奇?如何实现一个文字图片识别程序

近日浏览网上一些图片提取文字的网站,觉得甚是有趣,花费半日也做了个在线图片试别程序,完成了两个技术方案的选择,一是tesseract+python flask的方案实现,二是tesseract+spring web的技术解决方案,并简作论述,与君共勉。

2020-11-24 01:15:50 3708 40

原创 详解Java if语句

If语句If语句用于程序控制代码块是否会执行。true:会执行if(true){ System.out.println("true");}false:代码块不会执行if (false){ System.out.println("false");}If else语句If else语句表示非正则负,非你即我,用于互斥情况。if (condition){ }else { }条件运算符条件运算符用于判断真假值,在流程控制语句常常用到条件运算符。

2021-05-14 00:31:12 10

原创 基础必会必考点 Java数组

Java 数组连续存储的元素集合<font face="楷体">个人认为Java中的数据即C++、C语言相同,一定是连续分配的。笔者在C语言教材找到这样一段话可以证明:All elements of a one-dimensional array are always stored in consecutive memory locations.数组定义非初始化:int [] a1;初始化:int [] a2 = new int[10]; 和C语言一样,数组的长度是不可变的

2021-05-13 00:12:21 90 2

原创 面试必背,深入理解Java String

Java StringJava String本质上是一个连续的字符数组。创建字符串1. 直接String对象赋值创建。String s1 = "Hello World!";2. 使用String类的构造函数创建。String s2 = new String("Hello World!");String是单例的(常量)举例说明,如下列结果为true,为什么s1和s3是两个不同的变量为什么会相同呢? 这是因为在同一个运行环境下直接赋值创建的String对象会放在一个常量池里,当创建相同

2021-05-10 23:51:28 775 10

原创 Java switch使用详解

switch语句Switch语句可以实现根据某一变量选则执行代码块。当然直接使用If语句也可以做到,但是有时候使用Switch语句往往更加简洁优美。switch语法Java中switch语句的使用如下例所示:public void switchInt(int a){ switch (a){ case 0: System.err.println("0"); break; case 10:

2021-05-07 23:34:18 36

原创 Java数据类型(Data Type)

Java数据类型(Data Type)Java数据类型分类数据原型 (Primitive Data Types)对象包装类型 (Wrapped Object Type)数据原型和包装类型关系装箱拆箱对象引用类型 (Object references)Java数据类型分类Java中有两种数据类型原型和对象类型数据原型 (Primitive Data Types)数据类型范围boolean一个二进制值,true或者falsebyte8位带符号值,-128 至 127

2021-05-05 23:15:02 462 1

原创 for k, v in k_map: ValueError: too many values to unpack (expected 2)

报错原因:python里不能这样遍历字典的键值对:for k, v in k_map: 需要写成for k, v in k_map.items():

2021-05-05 22:26:10 445

原创 TypeError: unsupported operand type(s) for +: ‘NoneType‘ and ‘str‘

出错原因:当一个变量为None时不能用+进行字符串拼接k_map[str(scene_key[index])] = k_map.get(scene_key[index]) + “。” + str(item)解决办法进行非空判断if var is None: ****************else: ***************

2021-05-05 22:19:37 436

原创 沪漂程序员的两年,终说再见,你会不会是下一个离开的人?

始于云南,梦出发的地方       在昆明读了四年的本科,那是一段没有太多焦虑的日子,这所美丽又带着,位于西南边陲常常被人所       2019年,和很多憧憬北上广的同学一样,并没有太多犹豫就来了上海,当时是和同学院的同学潘先生一起,...

2021-04-12 22:48:20 682 12

原创 从入门到入狱,Kali Linux安装

直接下一步,默认安装在C盘。安装失败安装成功后打开

2021-04-06 11:43:54 128

原创 4.10 NIO中零拷贝原理

4.10 零拷贝       零拷贝即Zero-Copy,顾名思义,零拷贝是指的一种非拷贝的方式来减少IO次数的工作方式。零拷贝的作用就是减少IO,提高IO效率。4.10.1 传统IO方式       传统IO的工作方式需要经历多次文件拷贝,还需要程序在操作系统模式和用户模式之间来回切换,这样来回一圈后才来完成一次文件修改,这样极大浪费了内存,效率偏低,所以在

2021-03-20 13:00:12 138 2

原创 4.9 文件描述符FileDescriptor

4.9 FileDescriptor       Instances of the file descriptor class serve as an opaque handle to the underlying machine-specific structure representing an open file, an open socket, or another source or sink of bytes.The

2021-03-20 12:17:32 46

原创 求树的最大深度,求树的最小深度

树的深度       树的深度描述的树从根到当前节点的层级信息。求树的最大深度       解法:遍历所有的层级信息,找最大的。public static int maxDepth(TreeNode root){ if (root==null){ return 0; } return 1+Math.max(maxDept

2021-03-17 21:35:26 64

原创 LeetCode102. 二叉树的层序遍历

题目描述       按照层次遍历树(即BFS),相同层级作为一个List放在一起放入作为结果的List。解题思路       即BFS,按照广度优先去遍历树,关于树的BFS和DFS在笔者相关文章中有详述。代码实现public List<List<Integer>> levelOrder(TreeNode root) { Q

2021-03-17 00:01:29 1589

原创 树的广度优先遍历

树的广度遍历       广度优先遍历又称宽度优先遍历,缩写为BFS,和深度优先遍历DFS不同的是深度优先是指的同一个树先将某节点所有子节点遍历完后再遍历其兄弟节点。而BFS是先把同一层级的节点遍历完后再遍历下一级的子节点。BFS       即同一层级遍历完然后到下一层级。DFS      &nb

2021-03-16 23:53:50 1656 5

原创 基于ElasticSearch的站内全文搜索实现

摘要       对于一家公司而言,数据量越来越多,如果快速去查找这些信息是一个很难的问题,在计算机领域有一个专门的领域IR(Information Retrival)研究如果获取信息,做信息检索。在国内的如百度这样的搜索引擎也属于这个领域,要自己实现一个搜索引擎是非常难的,不过信息查找对每一个公司都非常重要,对于开发人员也可以选则一些市场上的开源项目来构建自己的站内搜索引擎,本文将通过ElasticSearch来构建一个这样的信息检索

2021-03-07 23:22:25 1955 3

原创 4.8 NIO Buffer详解

4.8 Buffer       Java中的Buffer就是一块内存区,用于存放特定的数据,Buffer常用于和Channel一起工作,也能做缓存。将数据从其他地方读到Buffer,也可以将Buffer中的数据写入其他地方。4.8.1 Buffer分类       Java中有以下不同类型的buffer:ByteBuffer,MappedByteBuffer,

2021-03-06 19:02:31 1811 2

原创 4.7 Nio Channel详解

4.7 Channel       Channel是NIO中的一个重要组成部分,可以从Channel中读入数据到Buffer,也可以将Buffer中的数据写入Channel。4.7.1 Channel的分类Channel作用FileChannel用于从文件中读取数据DatagramChannel通过UDP读写数据SocketChannel作为客户端通过TCP读写数据ServerSocke

2021-03-06 16:29:40 1788

原创 基于数组实现的树遍历方法

Binary Search Tree       二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)。二叉排序树的性质       若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。即按照左子树<根<右子

2021-03-06 13:53:49 1814 3

原创 二叉树所有路径 LeetCode257

题目描述给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。题目分析即从根节点返回到每一个叶子节点的路径,很容易可以想到解题思路:遍历树到叶子节点记录返回代码实现public List<String> binaryTreePaths(TreeNode root) { List<String> result = new ArrayList<>(); path(result,"",roo

2021-03-05 00:28:19 2936 8

翻译 Python 3.10新特性,看看有什么新功能吧

Python 3.10 新特性Python 3.10 新特性,上一版本 3.9更多详情, 查看 changelog.预发行版用户应注意,此文档目前处于草稿形式。随着python3.10的发布,它将得到实质性的更新,所以即使在阅读了早期版本之后,也值得再检查一下。新特性1.带圆括号的上下文管理器现在支持在上下文管理器中跨多行使用圆括号继续。这允许以类似于以前使用import语句的方式格式化多行中的上下文管理器的长集合。例如,所有这些示例现在都有效:with (CtxManager() as ex

2021-03-02 22:53:05 184

原创 作为打工人,普通人努力的意义何在?

       2021年了,恍惚之间疫情发生都已经一年多了,我也又老了一些,工作越来越久,也越来越麻木,随着年纪的增长其实思考的问题越来越少,焦虑的问题越来越多。一个人看着代码,突然想到了家里,想到了以前发生的种种,开反思工作的意义,作为一个程序员在一线城市是为了什么?作为个人又得到了什么,金钱?成就?快乐?好像都没有,尽管学到了些许经验,但这亦只是时间带来的馈赠,于我好像不过徒增了岁月,心中的热情似也被这忙忙碌碌磨灭了悸动,再不复从前模

2021-02-28 02:35:18 4372 6

原创 5.3 JDBC类加载机制源码解析(破坏双亲委派机制)

5.3 Java类加载机制       Java的类加载机制称作双亲委派机制,要明白JDBC为什么破坏双亲委派机制就需要明白双亲委派机制是什么,其工作原理如下,启动类加载器BootStrap只加载rt.jar,也就是jdk提供的相关java部分,扩展类加载器只加载java lib/ext扩展目录下的jar包,而用户类加载器App加载用户编写的代码所在目录(classpath)。    &nbsp

2021-02-27 15:19:16 2459 4

原创 5.2 原生JDBC增删改查

5.2.1 JDBC连接       只要用到数据库操作,首先要做的就是获取数据库连接,获取数据库连接三要素:连接串,用户和密码。public static Connection getConnection() throws SQLException { String url = "jdbc:mysql://localhost:3303/info_manage?serverTimezone=Asia/Shanghai&

2021-02-27 12:43:10 3498 2

原创 5.1 深入理解JDBC

5.1 JDBC       JDBC是Java Database Connectivity的简称,是Java数据库连接的规范,关于JDBC的内容定义在java.sql包下。需要明确JDBC只是一种规则集,并不是实现,具体数据库的连接实现是由各个数据库厂商实现的,通过JDBC规范,保证了不同数据库之间可以通过一套规则来进行连接(关系型数据库)。5.1.1 JDBC的作用JDBC API 能够实现Java程序连接关系型数据库,如

2021-02-26 23:32:16 2385

原创 4.6 深入理解Java NIO

4.6 什么是NIO       java中NIO 的含义就是指new IO,就是和传统IO方式相比另一种替代的方案。       java NIO中应是包含Non-Blocking IO的关系,所以网络上很多观点笔者是不认同的,java NIO包中也有阻塞IO的方法,但和传统IO(阻塞)相比只有New IO(阻塞,非阻塞)中支持了非阻塞的方式。### 4.6

2021-02-26 21:06:51 2338 2

原创 3.14 Java AQS原理解析

3.14 AQS       AQS是Java中AbstractQueuedSynchronizer的简称,AQS实在是太有名了,以至于它的全称经常被遗忘,先看看AQS是什么。       Provides a framework for implementing blocking locks and related synchronizers (semaphor

2021-02-25 00:20:42 4529 9

原创 4.5 Serializable

4.5 Serializable       Java中Serializable是标识类可序列化和反序列化的接口。如果不继承Serializable接口,直接使用序列化方法就会抛出如下异常,解决办法继承Serializable接口。com.lbh.xxmanager.basic.io.SerializableDemoException in thread "main" java.io.NotSerializableException

2021-02-22 19:49:08 220 1

原创 4.3 Java Pipe管道详解

4.3 Pipe       Java 管道Pipe是用于线程间通信的,但是需要注意的是,Java中的Pipe是用于一个虚拟机中的线程之间通信的,不能用于进程之间通信。 Java管道和Unix/Linux中的管道Pipe的作用是不同的,Unix/Linux中的管道是用于进程之间通讯,是不同Process之间。而Java是同一个虚拟机里的线程之间通讯,属于同一个Program。     

2021-02-21 00:09:45 1498 22

原创 4.2 文件IO (玩转Java File操作)

4.2 文件       首先明确什么是文件,先看看操作系统中文件的定义。什么是文件?记录在在存储介质上的程序和数据的集合。 Java中对于文件的操作是基于文件系统的,操作系统中的文件系统是一个非常深的点,笔者在此不敢造次,此处抄抄概念供诸君参考。       文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的

2021-02-19 22:57:12 108

原创 4.1 Java IO概述

4 IO开篇       IO的含义事Input和Output,不过关于IO是很难定义的,从硬件操作系统层面,IO可以是系统管理的输入输出设备,可以是数据的传入和输出,这是一个比较难定义的点,而此章节只聚焦于java IO,这儿指的IO是相对于java程序而言的。4.1 什么是Java IO       IO即Input和Output的缩写,通俗的解释,对于当前

2021-02-18 23:48:21 132 1

原创 公司要重构推荐系统?电商行业企业级推荐系统解决方案

摘要       推荐系统不是为了推荐而推荐,首先要聚焦解决什么问题,根据不同的业务场景来制定推荐业务,推荐系统并不是一个科技向善的系统。首先推荐系统是为了增加业务量而不是为了给用户实惠方便,是为了增加用户需求而不是仅仅为了满足用户需求(当然,这个也很重要),是为了增加信息壁垒而不是为了信息透明化,是为了给用户及时的心理暗示而不是为了百分百满足用户心理。      &nbsp

2021-02-17 22:13:02 1076 3

原创 正经网站爬虫实战,如何快速使用Selenium爬取租房信息

摘要       爬虫有风险,谨慎防入狱。你我皆是遵纪守法的好公民,怎么会爬虫这种面向监狱编程的技巧呢?这次就发几个简单的请求抓两条数据吧。笔者以前曾经也专门做过爬虫的工作(人称爬哥),后来见各位同行入狱笔者见事不妙跑路了,首先爬虫只是一种工具,望诸君坚守本心,在允许的情况下抓抓数据还是莫得问题的,这次笔者将使用python大法,再配合自动化神器selenium来爬个正经网站。1.技术选型1.1 Selenium &n

2021-02-17 01:05:15 1385 1

原创 3.13 CountDownLatch使用及原理

3.13 CountDownLatch * <p>A {@code CountDownLatch} is initialized with a given <em>count</em>. * The {@link #await await} methods block until the current count reaches * zero due to invocations of the {@link #countDown} method, after wh

2021-02-17 00:13:57 3130 6

原创 3.12 ArrayBlockingQueue详解

3.12 ArrayBlockingQueue       ArrayBlockingQueue是阻塞队列BolockingQueue接口基于数组的实现,该特点由名字也可看出。3.12.1 ArrayBlockingQueue继承关系       ArrayBlockingQueue继承了抽象类AbstractQueue并且实现了BlockingQueue接口。

2021-02-15 14:15:16 2626 2

原创 树之深度优先遍历算法详解(DFS实现) LeetCode94

       本文以如下树结构为例深度优先(Deep First Search)       树的孩子称作子树,对于一个树进行深度优先遍历,即将其某一子树下所有节点遍历完再去遍历其他子树。遍历的顺序以根为参照可分为先序遍历,中序遍历,后序遍历。遍历方式描述先序遍历根左右中序遍历左根右后序遍历左右根遍历顺序详解&n

2021-02-13 12:56:24 268 4

libfastcommon-1.0.40.tar.gz

linux组件,用于一些基础服务搭建。 如:fastDFS图片服务器,分布式部署全部工具。 linux系统下解压,完成配置即可使用,可以完成分布式文件存储,适合搭建图片服务器或者一些小文件存储服务。

2020-03-25

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除