- 博客(31)
- 资源 (7)
- 收藏
- 关注
原创 RocketMQ通过命令行创建Topic
updateTopic命令很多人都知道,也在博客上复制粘贴了官网的。但很多人没有给出具体的简单例子,对于初学者而言要的就是直观的例子,可以拷贝下来改个数字直接使用的例子。文档大家都知道看,但很多人看了还是不知道具体怎么去做。因为官网只是给一个介绍。具体命令怎么使用需要靠自己摸索。updateTopic命令主要是三个参数:-b broker_id:broker_port ,ip都知道就...
2019-01-09 15:25:12
14360
2
原创 LinkedList 源码分析
数据结构基础之双向链表双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表,如下图所示,同时下图也是LinkedList 底层使用的是双向循环链表数据结构。现在我们来看下LinkedList的源码,集合类的作用就是存储数据然后取数据。所以我...
2019-01-07 15:39:05
249
原创 java动装箱与拆箱原理简单分析
java中本着一切皆对象的原则,Java为每种基本数据类型都提供了对应的包装器类型。装箱:将基本类型用他们对应的引用类型包装起来。拆箱:将包装类型转为基本数据类型。java提供了自动拆箱和自动装箱。下面我们通过代码来看下二者在java中的实现。看如下代码:public class App { public static void main(String[] args) { ...
2019-01-07 14:17:49
235
原创 多线程并发题收集
1,为什么要使用线程池?为每一个请求创建新线程开销很大,服务器在创建和销毁新线程上花费的时间和资源可能比实际处理用户请求的时间和资源更多。在一个jvm中创建太多线程易导致过度消耗内存和线程上下文切换过度,从而影响整个服务器的性能。2,线程池有什么作用?可以重用线程,避免创建和销毁带来的开销控制线程池的并发数,避免大量线程因抢占资源而阻塞能对线程进行统一管理3,说说几种常见的...
2019-01-04 15:32:16
173
原创 为什么选择Nginx
Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性:作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型.作为负载均衡服务器:Ng...
2018-12-26 15:14:34
140
原创 轻松五步教你学会自定义springboot start
Spring Boot其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。Spring Boot 充分利用了 JavaConfig 的配置模式以及“约定优于配置”的理念,能够极大的简化基于 Spring MVC 的 Web 应用和 REST 服务开发。对于已经熟悉 Spring 生态系统的开发人员来说,Spring Boot 是一个很理想的选择. 以前当自己想掌握或者学习...
2018-11-28 16:10:58
9372
4
原创 AQS源码分析之ReentrantLock (一)
ReentrantLock 的锁实现主要用到的AQS.AQS是很多并发实现的基本框架。基本上关于锁的都和它有关。ReentrantLock 两个内部类分别是公平锁和非公平锁 FairSync和NonFairSync(目前分析这个类)lock方法使用原子操作,将state从0设置为1,如果设置成功则获取锁,当前线程为锁拥有者如果设置失败,则有两种可能,一是别人已经获取锁。...
2018-11-22 11:39:46
236
原创 java虚拟机类加载器
JDK默认提供了如下几种ClassLoader: 1,Bootstrap loader Bootstrap 加载器是用c++语言写的,它是在java虚拟机启动后初始的,它主要负责加载%JAVA_HOME%/jre/lib,-Xbootclasspath参数指定的路径以及%JAVA_HOME/jre/classes中的类 1,ExtClassLoader Bootstr...
2018-11-07 15:23:21
131
原创 Curator分布式锁源码分析
Curator是Apache ZooKeeper的Java / JVM客户端库,官网有个图很形象。curator对于zookeeper来说就像Guava之余java.我们知道Guava是谷歌开源的java类库,该库经过高度优化,运用得当可极大提高我们的代码效率和质量。所以,用Curator的前提是了解zookeeper,在现在分布式应用大行其道的时代,分布式锁一直是热点问题。现在我...
2018-08-24 15:21:01
742
2
原创 调用百度API实现人脸识别
人脸识别,听着很高级,但实际上它确实很高级。不过对于我们开发人员来说,我们大部分人都是拿来主义。这次展示的是调用百度人脸识别API进行人脸信息分析,笔者试了下,发现还是挺准确的,而且代码量很少才8行。(用的python,如果用java铁定不止)。下面来看步骤:第一步:用你的百度账号登陆百度云管理中心,找到人脸识别后,进去创建应用。这个就不细说啦。第二步:根据百度分配给你的API Key和Se...
2018-08-22 20:48:03
31901
原创 常见排序算法之选择排序
程序中常用的排序算法主要有十种,虽然我们在平时写业务代码中很少接触到要自己直接去写排序算法的,一般都是使用工具类,但平时多了解这些算法的思路对我们还是很有益,特别是在看一些源代码或者面试时,笔者之前面试就经常遇到要手写一些常用排序算法情况,今天我来讲下选择排序。选择排序的思路其实是比较好理解的。首先循环找到最小的元素,将其与第一个元素互换(这样第一个位置的元素就是最小的了),接着循环找到第二个...
2018-08-22 20:41:45
150
翻译 yield关键字在python中的作用
本文翻译自:stackoverflow ,原文链接想要理解yield 的作用,你必须先理解什么是生成器以及从生成器到迭代器的过程。Iterables当你创建一个list,你可以一个一个地读取他的元素,一个一个地读取元素就叫迭代。>>> mylist = [1, 2, 3]>>> for i in mylist:... print(i)...
2018-08-17 11:43:17
508
原创 小白看python一行代码打印九九乘法表
众所周知,python是一门非常强大的语言,很重要的一点就是简洁。之前刚学python时看到大神写的一行代码打印九九乘法表,膜拜不已,但又有点看不懂,最后学习了一阵基础后,基本可以看懂并拆分它了。先看大神代码:print('n'.join([' '.join(['%s*%s=%-2s' % (y, x, x*y) for y in range(1, x+1)]) for x in ran...
2018-08-15 15:42:28
6223
2
翻译 java值传递和引用传递分析
在stackoverflow上看到的文章,觉得很赞,翻译过来。原文地址 java一直都是按值传递而不是按引用传递 先来看个小例子:public class Main{ public static void main(String[] args){ Foo f = new Foo("f"); changeReference(f); //
2018-01-08 11:13:05
200
原创 子线程主线程循环交替执行
偶然看到一道面试题: */子线程循环 10 次,接着主线程循环 100 ,接着又回到子线程循环 10 次 接着再回到主线程又循环 100 ,如此循环 50 次,请写出程序。/* 刚好最近在学习并发知识就尝试去做了下。代码如下:(标红处为不明白的地方,希望能指导!)public class Service extends Thread { static volatile boolea
2017-12-14 11:47:41
1175
原创 log4j日志两种简单的使用方式
一直以来只知道用log4j这个日志工具包,对他的配置文件也从来没有去解读过,至于它的用法也一直都是复制粘贴,今天在参考了大牛的博客,发现它有两种使用方式第一种:先看log4j.properties文件的配置**log4j.logger.myTest1=debug,A** log4j.appender.A=org.apache.log4j.DailyRollingFileAppender lo
2017-07-21 15:16:08
364
原创 mybatis入门(结合日志输出)
之前就学习过mybatis,今天又结合官方文档重新来回顾下。前面都挺顺利的,后面碰到日志打印的问题。搞了好久才实现,百度别人的例子,但不是不完整就是在自己这里没实现,所以把自己这里的详细列出来,供大家参考。项目结构如下:方法和equal()方法。package com.map.test;/** * Created by 74039 on 2017-02-26. */public class Cat { private int a;
2017-02-26 16:44:25
608
1
转载 让自己更值钱的要诀(摘录)
我们经历了小学、初中、高中,习惯了死记硬背,习惯了凡事都去索要标准答案。这种习惯带到职场,就导致了我们缺乏思考能力和自主学习能力,凡事等待别人安排,遇到问题首先想到的是找别人索要现成解决方案。比如你使用Android的ListView,想让它默认选中某一项,你会怎么解决这个问题?可能首先想到的就是到Google、百度上去搜索一下,看看别人是否遇到过类似的需求,是否提供了解决方法。这样做可以使得你的问
2017-01-10 15:08:35
585
原创 Oracle 的关联子查询(correlated subquery) 简介.
这是一篇别人的博客摘录过来,供大家参考1. 什么是子查询这个很简单, 子查询就是嵌套在主查询里的查询了.例如, 在scott 模式下我想查找所有比Allen 工资高的员工我们可以写成这样:[sql] view plain copyselect a.* from emp a, emp b where a.sal > b.sal and b.ename = 'ALLEN' 当然上面
2017-01-09 20:15:09
481
原创 二叉树结构字符串转为数组控制台输出二叉树
之前了解过二叉树但是一直不怎么理解,前天接到一个任务,给我一个字符串15+(2+(3+6)*3),在控制台打印成一颗二叉树。网上有好些例子,但有些是C语言的,有些只有一些片段,做了两天终于弄出来拉。 先写要给工具类package com.jsm.test;import java.util.ArrayList;import java.util.Arrays;import java.util.Co
2017-01-09 14:30:42
481
转载 web.xml组件加载顺序
在配置项目组件的过程中, 了解Tomcat加载组件顺序很有必要。 例如某些框架如Quartz的集群功能需要数据库的支持, 数据库的加载肯定要在框架组件加载之前。经过查阅和Debug发现, web.xm组件加载顺序为:context-param -> listener -> filter -> servlet(同类则按编写顺序执行)。web.xml常用组件解析: <web-app><display-
2017-01-02 12:50:31
660
原创 20个有用的java程序
下面是20个非常有用的Java程序片段,希望能对你有用。字符串有整型的相互转换String a = String.valueOf(2); //integer to numeric string int i = Integer.parseInt(a); //numeric string to an int 2. 向文件末尾添加内容BufferedWriter out = null; tr
2016-12-30 13:46:08
263
原创 oracle常用基本知识
oracle通过表名和字段名查询字段类型select data_type from user_tab_columns where table_name ='表名' and column_name ='字段名' 数据库建立dblink-- Drop existing database link drop database link DFH;-- Create database link crea
2016-12-28 09:12:13
322
原创 spring简单AOP例子
1,先定义一个接口 aop是面向接口的编程。(如果不面向接口就达不到目的)public interface CustomerBo { void addCustomer();}2,定义一个类去实现该接口public class CustomerBoImpl implements CustomerBo{}3,定义切面的类(那个类去增加目标类)public class LoggingAspect
2016-12-17 10:27:43
364
原创 java中用Io流实现文本复制(按行读按行写)
不多说啦 直接上代码。有一个文本,我希望在它的每行前加上某个字符,如果就几行的话,手动添加就行啦,但如果文字太多就没法手动啦。这里写代码片try{ FileWriter fw=new FileWriter("d:"+ File.separator+"jin02.txt"); BufferedWriter bw=new BufferedWriter(f
2016-11-30 10:45:07
3271
三大框架基本包(spring,hibernate,struts,logging)
2016-05-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人