自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yhc不是咸鱼

组织部加班中,没时间写代码了。。。

  • 博客(87)
  • 收藏
  • 关注

原创 2020江苏选调考察&体检环节的记录

今天刚体检完,趁着还热乎,把上个月的考察环节和这个月的体检环节都记录一下首先是考察,上回书说到6月7日面试完毕,于是6月9日晚出了考察名单(常州一类延迟面试,22才出),11日起开始准备考察材料,包括报名系统下载的选调生推荐表(这个表不允许涂改,所以有什么任职or奖励,一定要在报名时就写清楚!!!)、任职的聘书原件&复印件(没有的出具证明即可,学院盖章)、奖励的证书原件&复印件(没有的出具证明即可,学院盖章),上述复印件都需要注明与原件一致并盖章。另外需要写一个500字的日常表现评价材料

2020-07-12 21:59:16 2780 1

原创 2020江苏普通选调面试的一点记录

昨天刚参加江苏2020届的普通选调面试,今天到家记录下经历,想到哪说到哪首先是面试的流程,6月6日到东南大学四牌楼校区那里的高层次人才服务中心一楼领取面试通知书,6月7日和省考考生一起参加面试,题目、形式、流程完全一致(也不奇怪,普选本来就是换个名字的乡镇公务员23333)面试当天7点半之前凭面试通知书和身份证进考场,刷身份证查询候考室号,大概8点左右抽签&通知抽签结果,1号考生直接跟着工作人员去考试,2号在面试通知书贴好顺序号以后等待,其他人依次贴顺序号,同时缴纳面试考务费选调是男女分

2020-06-08 18:54:06 2265

原创 记OpenDDS订阅内置主题的一些坑

由于某个需求,现在需要订阅OpenDDS的内置主题,首先我们通过官方文档来看下OpenDDS有哪些内置主题:一共四个,分别对应参与者、主题、生产者、订阅者,这次我们要订阅的是Topic的信息,但是这里没有说明该怎么订阅,也没说明这四个主题的消息格式是怎样的,不要急,往下翻一下第六章就能看到:我们可以看到,DCPSTopic这个主题的消息类型为TopicBuiltinTopicDat...

2020-05-04 12:08:17 1797 2

原创 2019年终总结

上半年的在2019年中总结总结过就不多bb了下半年主要是先在支付宝实习了四个月,然后回校做毕业课题在支付宝的四个月还是学习到了很多,包括系统的架构演进,从烟囱式的单体应用,到分布式、服务化的SOA,再到单元化架构,再到弹性架构,现在正在做上云,还有支付宝优秀的开发规范,包括类/方法/变量的命名、空处理、日志格式等,通过参与实际业务,认识到自己技术上还差得远,身边许多优秀的大佬同事都很值得我...

2019-12-31 12:38:00 427 1

原创 Flink学习(二):集群部署

Flink可以有多种集群模式,例如独立集群、on YARN、Docker、AWS等。对于独立集群模式,需要有至少两台独立的机器(物理机、虚拟机或者Docker/K8s等容器),其中一台作为Master,剩下的作为Slave,或者称为Worker。首先需要修改配置文件 conf/flink-conf.yaml,将jobmanager.rpc.address修改为Master机器的地址,...

2019-12-30 19:01:14 399

原创 Flink学习(一):SocketWindowWordCount示例

参考资料:官方文档 & 官方示例代码首先是环境配置,很简单,下载下来解压就可以。然后运行bin/start-cluster.sh启动Flink,虽然脚本名字是cluster,不过默认配置是启动的本地模式。启动后,可以在浏览器输入localhost:8081进入Dashboard:接下来就是按照给定的代码编写示例程序并运行,不过程序example目录已经有打包好的...

2019-12-30 15:43:43 2731

原创 Tomcat学习(三):请求处理

目录请求预处理获取请求处理器请求映射请求处理Mapper.map()Tomcat在启动时,就已经将ServerSocket(或ServerSocketChannel等)初始化完毕,并启动了Acceptor线程等待请求到达。请求预处理在Acceptor线程的run方法中,有如下代码片段:U socket = null;try { // Accept t...

2019-12-25 17:39:39 393

原创 基于Camel实现SOAP协议到自定义协议的转换

背景毕业课题是做某种通信框架和ESB总线的集成,其中ESB的选型是ServiceMix,它的路由机制是借助Camel实现的。Camel提供了RouteBuilder抽象类,只要在其configure方法中,以from、to等方法描述路由,然后通过CamelContext的addRoute方法,就能将路由插入到Camel中。现在想实现,对外发布一个WebService,用户调用该服务后,总线...

2019-12-24 16:21:25 1528

原创 Tomcat学习(二):启动过程(2)

目录1.服务器的启动2.Web应用的加载3.自动扫描机制3.1 HostConfig3.2 ContextConfig1.服务器的启动在Tomcat学习(一):启动过程(1)中简单介绍了Tomcat的启动类、加载server.xml和初始化部分组件的过程。在使用load方法初始化组件后,Catalina又调用了Server的start方法,开始了各组件的启动。和in...

2019-12-22 20:58:14 339

原创 Tomcat学习(一):启动过程(1)

目录1. 启动入口2.Bootstrap启动过程2.1 Tomcat类加载器结构2.2 Bootstrap的启动3.Catalina的启动之Server的加载3.1 server.xml的加载和解析3.2 StandardServer的初始化3.3 启动的后处理以Tomcat 9.0.30为例,参考资料:《Tomcat架构解析》1. 启动入口一般使用To...

2019-12-21 18:15:19 277

原创 Spring源码学习(十):Spring与Mybatis整合原理

目录1.关键类的加载1.1 SqlSessionFactory的加载1.2SqlSessionTemplate的加载2. Mapper的自动绑定2.1processPropertyPlaceHolders2.2 Mapper扫描2.3 Mapper的后处理从学习Mybatis(7):Mybatis运行原理源码分析其实可以知道Mybatis运行的原理,不难...

2019-12-13 21:18:36 361

原创 Spring源码学习(九):Spring JDBC

目录1.使用2.JdbcTemplate的使用2.1数据查询2.2数据持久化Java程序员对JDBC应该都不陌生,使用起来也很简单,只要用DriverManager开启一个Connection,就可以创建Statement或PreparedStatement,然后调用SQL语句,获得ResultSet或将数据修改持久化。但是JDBC使用起来也有很多不便,例如:SQL语句编写...

2019-12-13 17:22:53 178

原创 记录一个疏忽导致的异常

今天对一个工程代码做重构,这个工程原先是通过Spring的InitializingBean将自身注册到Zookeeper上,做的改造包括:1)将注册中心的接口独立出来形成一个工程2)基于注册中心基本接口扩展出Zookeeper实现3)使用properties文件记录配置,取代原先Spring的XML配置然后通过SPI机制实现自动注册,就可以脱离Spring容器使用了,但是在测试时,...

2019-10-14 18:05:03 329

原创 记Maven遇到的一个坑爹问题

听说IDEA更新2019.2,于是也跟风更新了一下,结果更新完就出现依赖无法引入的问题,报错如下:Could not transfer artifact redis.clients:jedis:pom:3.1.0-m1 from/to alimaven (http://maven.aliyun.com/nexus/content/groups/public/): C:\Program Fil...

2019-07-27 23:28:15 1243

原创 2019年中总结

明天就要出发去杭州准备入职蚂蚁了,今晚写个年中总结吧1月基本就是看书,略过2月份,即寒假,复习了下MongoDB,还看了Python爬虫。寒假快结束的时候看到同学的说说,发现自己JUC没怎么看,于是开始看源码,同时投了头条实习。头条面的部门是做Python的,所以一面面试官完全不懂Java,被我蒙混过去了,这时候还没发现我自己的很多问题;接下来的二面彻底暴露了我算法能力不足的问题,比如动规...

2019-05-17 21:37:22 321

原创 缓存学习(十):分布式Redis之Redis Cluster

目录1数据拆分2 Redis Cluster配置3集群搭建4集群命令4.1redis-cli的集群管理模式4.2客户端命令5原理5.1节点通信5.2槽的迁移5.2.1集群收缩5.2.2集群扩容5.3请求路由和重定向5.4故障转移6 JedisCluster6.1集群节点的自动发现6.2JedisClus...

2019-05-09 14:33:43 3259

原创 缓存学习(九):分布式Redis之副本、哨兵

目录1.配置主从节点2.复制原理2.1复制流程2.1.1全量复制2.1.2断点续传2.2 PSYNC协议2.3心跳机制3哨兵Sentinel3.1简介3.2配置3.3搭建3.4命令3.5哨兵实现原理3.5.1 Pub/Sub3.5.2 Leader与Epoch3.5.3监控和从节点选取3.6 Jedis对哨兵...

2019-04-29 17:59:34 3353

原创 缓存学习(八):Redis的Java客户端

目录1基本使用2高级特性2.1连接池JedisPool2.2管道2.3事务2.4发布/订阅2.5streams支持3利用Jedis实现一个简单的分布式锁3.1构造方法3.2lock方法3.3unlock方法3.4测试Jedis是Redis的Java客户端实现,支持Redis的全部特性,如:事务、管道、发布/订阅、集群等,还...

2019-04-27 20:45:51 348

原创 OpenDDS Java开发(二):根据IDL进行代码生成

目录1.编写IDL文件2将IDL编译为C++代码3将已生成代码编译为Java代码4使用UserManager替换Messenger1.编写IDL文件IDL是Interface description language的缩写,指接口描述语言,是CORBA规范的一部分,是跨平台开发的基础。关于IDL的介绍可参见:https://blog.csdn.net/wyc123...

2019-04-26 18:05:48 3500 2

原创 缓存学习(七):Redis的高级机制:管道、事务、脚本、发布订阅、持久化

目录1.管道1.1 RESP1.2通过管道交互2事务操作3.脚本4.发布/订阅模式5.持久化5.1 RDB5.2 AOF1.管道1.1 RESPRedis的协议称为RESP,它将协议数据分为不同类型,根据数据的首字符决定,不过所有类型的数据均以CRLF(即“\r\n”)结束。1)简单字符串首字符为“+”,后续为字符串内容,字符串内容不能...

2019-04-26 15:39:29 305

原创 缓存学习(六):Redis的数据结构及基本命令

目录0.key1.string2.list3.set4.hash5.sortedset(zset)6.streams7.衍生类型7.1 bitmaps7.2.geoRedis 5之前一共有六个主要数据结构:key、string、list、set、hash、sorted-set(zset),还有由string衍生出来的bitmaps、由zset衍生出来的...

2019-04-25 11:07:37 365

原创 缓存学习(五):Redis安装、配置

目录1.安装2.配置2.1include2.2loadmodule2.3网络配置2.4通用配置2.5 RDB配置2.6主从配置2.7安全配置2.8maxclients2.9内存管理2.10 AOF配置2.11 Lua脚本最大执行时间2.12slowlog2.13高级配置1.安装安装本身比较简单,就是去官网下载源...

2019-04-22 16:03:09 425

原创 缓存学习(四):MemCached的Java客户端

目录1基本使用2高级特性2.1为节点设置权重2.2动态调整集群2.3 NIO连接池2.4节点选择2.5 Key迭代器2.6命名空间2.7安全认证2.8 Failure模式和 Standby模式3结合Spring使用上一篇提到,Memcached将数据全部保存在内存中,并且服务端节点间互相分离,这就带来了一定的性能问题:首先,由于...

2019-04-19 21:44:11 206

原创 缓存学习(三):MemCached安装、配置和命令

目录1.安装2.使用2.1常用选项2.2命令格式2.3命令EhCache和Guava Cache虽然简单、高效,但是它们都是本地缓存(EhCache可以分布式部署,但是需要依赖Terracotta,显然不利于维护),一般只是用在单个应用程序实例内部。在实际的分布式系统中,缓存更多地用于缓存数据库的热点数据,以减轻数据库负担,常用的分布式缓存有Redis和Memcach...

2019-04-16 21:23:14 276

原创 缓存学习(二):Guava Cache

目录1LoadingCache的创建:借助CacheLoader2 Cache的创建与使用:需要配置Callable3 CacheBuilder的可配置属性Guava是Google推出的Java增强包,包含了很多实用功能,如:Optional、数学工具、字符串工具等,像Optional特性已经被Java吸收,成为Java 8特性之一。Guava Cache也是Guava中包含的一...

2019-04-15 17:44:48 264

原创 缓存学习(一):EhCache

目录1.基本使用1.1 XML配置1.2硬编码1.3直接创建Cache2.结合Spring使用2.1使用EhCacheCacheManager ——仅支持2.x版本2.2使用JCacheCacheManager ——仅支持3.x版本3.作为二级缓存使用3.1 Hibernate:同时支持EhCache2、33.2 Mybatis:仅支持2.x...

2019-04-14 20:02:41 511

原创 Spring源码学习(八):Spring Boot原理

目录1.Spring Boot简介2.Spring Boot启动原理 ——构造方法2.1 deduceFromClasspath方法2.2配置ApplicationContextInitializer、ApplicationListener3.Spring Boot启动原理 ——run方法3.1SpringApplicationRunListener3.2环境...

2019-04-02 19:04:46 425

原创 Spring源码学习(七):Spring MVC的请求响应流程

目录1.方法到达service1.1 processRequest方法1.2父类service方法2.doDispatch方法2.1检查上传请求 —— checkMultipart方法2.2查找处理器 ——getHandler方法2.2.1 RequestMappingHandlerMapping 的 getHandlerInternal 方法实现2.2.2...

2019-03-31 13:30:47 705

原创 Spring源码学习(六):Spring MVC的初始化过程

目录1.ContextLoaderListener1.1创建WebApplicationContext1.2设置和刷新WebApplicationContext2.DispatcherServlet2.1init方法2.2initServletBean方法2.3 OnRefresh方法3.九大组件的注册3.1文件上传解析器MultipartResolv...

2019-03-28 19:30:25 634

原创 Spring源码学习(五):Bean的创建和获取

目录1.获取Bean单例实例2.完整创建Bean2.1Bean创建的前置处理2.2创建Bean:doCreateBean的createBeanInstance方法2.2.1 通过Supplier实例化 —— obtainFromSupplier2.2.2 通过factory-method实例化 —— instantiateUsingFactoryMethod2.2....

2019-03-25 22:40:25 675

原创 Spring源码学习(四):容器的功能扩展·二

目录1.initMessageSource2.initApplicationEventMulticaster3.registerListeners4.finishBeanFactoryInitialization5.finishRefresh到目前,容器的启动过程还剩下下面几个方法:this.initMessageSource(); //初始化消息源,用于国际化th...

2019-03-21 21:11:02 250

原创 Spring源码学习(三):容器的功能扩展·一

目录1.prepareBeanFactory方法1.1扩展容器的组件1.2忽略依赖接口1.3注册可解析依赖1.4注册环境2.invokeBeanFactoryPostProcessors2.1一个例子2.2核心方法介绍3.registerBeanPostProcessors容器完成配置文件的解析和Bean的加载、注册之后,ApplicationCo...

2019-03-20 19:11:57 383

原创 Spring源码学习(二):默认标签的解析与Bean的注册

目录1parseBeanDefinitionElement方法1.1BeanDefinition的组装1.2产生BeanName2decorateBeanDefinitionIfRequired方法3注册BeanDefinition4其它默认标签的解析4.1alias标签4.2import标签4.3beans标签在parseDefaultE...

2019-03-19 21:43:14 333

原创 Spring源码学习(一):Bean的加载和初步解析

目录1.一个示例2.定位和加载配置文件2.1沿继承链向上调用父类构造函数2.2设置配置文件路径3容器的刷新与Bean的加载3.1prepareRefresh3.2obtainFreshBeanFactory1.一个示例下面是一个最基本的Spring示例:配置文件config.xml:<?xml version="1.0" enco...

2019-03-19 15:22:36 211

原创 313腾讯面试凉经&反思

本渣3月9号做了腾讯后台实习笔试,由于算法能力太渣,只AC了两题,第三题过60%(后来听说第五题直接输出0都能过40%。。。),本来觉得肯定跪了,结果3月12号收到邮件通知,约13号上午视频面试。视频系统跟头条一样,用的牛客网的。面试题目如下:1.自我介绍此时面试官提到部门主要用C++(我主要用Java),接下来的面试题会考C++,还问了我未来的规划,我表示C++还是会一点的,可以...

2019-03-15 10:59:25 347

原创 JUC学习(八):AQS的CLH队列

目录一.简介二.Node类三.CLH队列一.简介AQS是JUC的核心,无论是信号量、CDL还是可重入锁,背后都有AQS的影子。这些类的同步过程一般如下:tryAcquire和tryRelease过程很好理解,就是CAS地修改AQS的state值,关键是doAcquire和doRelease如何管理众多线程的状态,又如何决定哪个线程可以获得锁。答案就是,AQS在其内部管理...

2019-02-25 18:38:32 4503

原创 JUC学习(七):ReentrantLock和Condition

目录1.Condition的使用1)await方法2)signal、signalAll方法2.ReentrantLock的原理1)lock方法2)unlock方法初学并发时,一般都是使用synchronized关键字来保证线程安全,它具有使用方便的优点,尽管旧版本性能不佳,经过长期的优化,目前它的性能并不输给ReentrantLock。这两种锁都是可重入锁,即同一个线程...

2019-02-24 19:48:48 255

原创 JUC学习(六):ForkJoin框架

目录1.简介2.RecursiveAction的使用3.RecursiveTask的使用4.CountedCompleter的使用5.原理介绍1)submit方法:2)signalWork方法:3)runWorker、runTask方法:4)invokeAll方法5)setCompletion方法6)doJoin方法7)getRawResult方法...

2019-02-24 17:58:33 264

原创 JUC学习(五):Future & Callable

目录一.简介二.Future的一些方法1)cancel方法2)get方法3)run方法一.简介一般使用Thread时,都是传入Runnable,但是这种方式有一个问题:无法获取返回值,也不能抛出异常;只能通过全局变量等手段获取值,通过try-catch块捕获异常。Callable就是为了解决这个问题而产生的,它的call方法既可以有返回值,也可以抛出异常。Future则...

2019-02-23 17:39:07 143

原创 JUC学习(四):线程同步之Phaser

目录一.简介二.构造方法三.doRegister方法四.arrive系列方法四.await系列方法一.简介CyclicBarrier解决了CDL不能重用的问题,但是仍有以下不足:1)不能动态调整计数器值,假如线程数不足以打破barrier,就只能reset或者多加些线程,在实际运用中显然不现实2)每次await仅消耗1个计数器值,不够灵活Phaser就是用来...

2019-02-23 16:55:39 655

空空如也

空空如也

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

TA关注的人

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