<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[OpenWorld1的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/OpenWorld1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; OpenWorld1]]></copyright><item><title><![CDATA[2019年找工作经历]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/103356903</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/103356903</guid><author>OpenWorld1</author><pubDate>Mon, 02 Dec 2019 20:51:18 +0800</pubDate><description><![CDATA[来深圳第一周就开始正式找工作了，这期间暂时放下了理财的学习，集中精力准备面试，查漏补缺。基本的节奏就是一天两次面试，上午下午各一次，晚上看下技术就休息了。总共跑了4天，收到4份offer，最后确定下来进入一家业内知名公司，开始我新的工作阶段。整个找工作的过程还是挺累的，在深圳跑了好几个地方。

面试的过程，了解到市场的行情，不同公司根据业务和职位面试的侧重点也不同。大公司比较重视基础，愿意培养你，...]]></description><category></category></item><item><title><![CDATA[并发编程系列（七）：线程池原理]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/102777710</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/102777710</guid><author>OpenWorld1</author><pubDate>Tue, 29 Oct 2019 16:25:24 +0800</pubDate><description><![CDATA[一、线程池
在java中，创建和销毁线程花费的时间和消耗的资源都较大，如果每来一个请求就创建一个线程，可能会导致系统资源的过渡消耗。为了解决该问题，引入了线程池。
通过创建一个线程池子来管理多个线程的使用，当有任务需要处理，则分配给线程池中的线程处理，线程处理完后不会立即销毁，而是等待后续任务。通过对线程的管理，避免大量线程创建的开销

线程池的优势：
1. 降低创建线程和销毁线程的性能开销
2....]]></description><category></category></item><item><title><![CDATA[并发编程系列（六）：阻塞队列]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/102776592</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/102776592</guid><author>OpenWorld1</author><pubDate>Mon, 28 Oct 2019 10:29:46 +0800</pubDate><description><![CDATA[一、生产者消费者的实际使用
生产者消费者模式在分布式消息队列中用到较多，比如 ActiveMQ、kafka、RabbitMQ 等等，消息队列的使用可以使得程序之间实现解耦，提升程序响应的效率。
如果我们把多线程环境比作是分布式的话，那么线程与线程之间也可以使用这种消息队列的方式进行数据通信和解耦。

二、阻塞队列使用案例注册成功后增加积分
用户注册时，在注册成功以后发放积分。这个场景一般来说，我们...]]></description><category></category></item><item><title><![CDATA[并发编程系列（五）：ConcurrentHashMap的底层原理]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/102755509</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/102755509</guid><author>OpenWorld1</author><pubDate>Sun, 27 Oct 2019 15:44:27 +0800</pubDate><description><![CDATA[一、内容要点
1.通过数组的方式实现并发增加元素的个数（不用加锁，减少性能消耗）
2.并发扩容，可通过多个线程实现数据迁移
3.采用高低位链的方式解决多次hash计算的问题，提升了效率
4.sizeCtl的设计，3种表示状态
5.resizeStamp的设计，高低位的设计实现唯一性以及多个线程的协助扩容

二、底层设计结构1.7版

ConcurrentHashMap由一个个Segment组成，其...]]></description><category></category></item><item><title><![CDATA[并发编程系列（四）：线程并发包J.U.C和AQS的原理]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/102754003</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/102754003</guid><author>OpenWorld1</author><pubDate>Sat, 26 Oct 2019 11:55:26 +0800</pubDate><description><![CDATA[一、J.U.C简介
Java.util.concurrent 是在并发编程中比较常用的工具类。

1.Lock
Lock是JUC包中最重要的组件，解决synchronized关键字在某些场景的短板。

eg.锁修饰的代码块内，调用了同个锁修饰的代码块，锁对象相同，这时候第一个获得锁的代码还没释放，后面又有等待获取锁的代码，就形成死锁状态

2.Lock实现
Lock本质是一个接口，定义了获取和释放...]]></description><category></category></item><item><title><![CDATA[并发编程系列（三）：重排序和可见性问题]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/102740368</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/102740368</guid><author>OpenWorld1</author><pubDate>Fri, 25 Oct 2019 13:28:51 +0800</pubDate><description><![CDATA[一、volatile关键字作用
eg.代码演示有无加volatile关键字的显示结果


public class App {

    public volatile static boolean stop=false;

    public static void main( String[] args ) throws InterruptedException {
        Thre...]]></description><category></category></item><item><title><![CDATA[并发编程系列（二）：线程锁使用场景和原理]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/102734723</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/102734723</guid><author>OpenWorld1</author><pubDate>Fri, 25 Oct 2019 09:38:08 +0800</pubDate><description><![CDATA[问题：java中如何解决线程并行导致的数据安全问题？
java SE 1.6后对synchronized做了优化，增加了偏向锁、轻量级锁概念，以减少获得/释放锁带来的性能消耗

一、synchronized的使用
锁的粒度，从上到下变小
1.修饰静态方法，作用于当前类对象加锁，进入同步代码前要获得当前类对象的锁


public synchronized static void demo2() {...]]></description><category></category></item><item><title><![CDATA[并发编程系列（一）：线程基础]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/102724183</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/102724183</guid><author>OpenWorld1</author><pubDate>Thu, 24 Oct 2019 15:56:44 +0800</pubDate><description><![CDATA[一、线程生命周期
通过start方法启动线程，当run()方法执行完毕，线程生命周期即将终止
线程6种状态

NEW：初始状态，线程被创建，还没调start方法
RUNNING：运行状态，就绪ready和运行两种统一称为“运行中”
WAITING：等待状态
TIME_WAITING：超时等待状态，超市以后自动返回
TERMINATED：终止状态，表示线程执行完毕
BLOCKED：阻塞状态表示线程进...]]></description><category></category></item><item><title><![CDATA[ORM框架设计原理与定制]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/102510405</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/102510405</guid><author>OpenWorld1</author><pubDate>Fri, 11 Oct 2019 21:33:38 +0800</pubDate><description><![CDATA[一、ORM框架顶层设计原理
1、java原生的一套jdbc操作数据库接口，有如下几个步骤:
（1）获得数据库驱动
具体的驱动程序由各数据库厂商提供，java负责提供实现接口
Class.forName("com.mysql.jdbc.Driver")

（2）建立连接
Connection conn = DriverManager.getConnection()

（3）创建语句集
Prepare...]]></description><category></category></item><item><title><![CDATA[python运维——自动化远程连接项目]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/102136441</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/102136441</guid><author>OpenWorld1</author><pubDate>Sat, 05 Oct 2019 11:08:23 +0800</pubDate><description><![CDATA[应用背景：
对于项目中有一些固定的繁琐的操作步骤的地方，每次手动处理比较费时，通过自动化项目，把这些固定的步骤交由程序执行，可以节省我们的时间，提高效率。

自动化连接项目功能：
通过pexpect包模块提供的方法，远程连接到Linux主机，对上面的SClient客户端做自动操作。
手动启动SClient程序，需要一步步在界面输入命令，去执行下一步，通过pexpect包可以将这些手动操作自动化执行...]]></description><category></category></item><item><title><![CDATA[比技术更重要的东西]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/100937548</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/100937548</guid><author>OpenWorld1</author><pubDate>Tue, 17 Sep 2019 19:56:42 +0800</pubDate><description><![CDATA[在项目中，我们会经历很多的问题，有些问题简单的复制粘贴可以解决，有些问题换了一个项目也同样会有。在这些问题背后，我觉得有些东西是比较重要的。



思维和思想是比知识重要的。学了很多东西，用不上就是在浪费大脑库存和时间，解决不了实际问题，那么意义就会大打折扣。思维方式有很多，归纳法，演绎法，从整体到局部，从局部到整体等，这些东西的学习，可以从方法论的意义上指导我们日常的工作，让我们更有效的解决问...]]></description><category></category></item><item><title><![CDATA[代码规范性]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/100831426</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/100831426</guid><author>OpenWorld1</author><pubDate>Sat, 14 Sep 2019 17:27:49 +0800</pubDate><description><![CDATA[对于初学者来说，一开始把功能做出来就可以了，但随着年限增加，学习代码的规范性，可以提高代码的可读性和可维护性，便于后来者更快的入手项目，通过基本的代码规范也能够避免一些不应出现的问题，比如：空异常、类型转换异常等，就可以从源头上预防。

还有学习代码的设计规则，提高抽象能力和代码的解耦能力，

当然，除了代码规范性还有代码安全性条规，涉及数据库、web和Java安全，防止外部的恶意攻击。

目前先...]]></description><category></category></item><item><title><![CDATA[程序员这份职业]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/100799895</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/100799895</guid><author>OpenWorld1</author><pubDate>Fri, 13 Sep 2019 11:49:27 +0800</pubDate><description><![CDATA[一、启蒙与选择

决定进入软件行业，从事程序员这份工作，始于大学的熏陶。当时的想法很简单，为了能够做出酷炫的东西，可以在同学面前炫技；也受学长大学四年经历的启示，在以后离开校园时，提前谋一条出路，学习一些技能，旱涝保收不怕饿死。炫技、谋生、未来主流，基于这三个原因构成了我最初学习技术的原动力。

学习的过程遇到了很多的问题，不知道从何入手、获取到的资料少、学习的方向不明确等，那个时候只要有机会和大...]]></description><category></category></item><item><title><![CDATA[python运行方式和应用]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/100634766</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/100634766</guid><author>OpenWorld1</author><pubDate>Sun, 08 Sep 2019 18:50:05 +0800</pubDate><description><![CDATA[一、python不同环境下运行1、python外部传参
引入sys包
通过sys.arg[i]获取到对应参数

2、python在DOS运行
需要加入引用包路径
sys.path.append("D:/python/lib")

3.shell和bat脚本运行python文件
（1）bat文件
python hello.py %1 %2
默认有传参数限制，需要用其他方式来获取更多参数

（2）sh...]]></description><category></category></item><item><title><![CDATA[Linux入门——常用命令]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/100634668</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/100634668</guid><author>OpenWorld1</author><pubDate>Sun, 08 Sep 2019 18:46:04 +0800</pubDate><description><![CDATA[Linux有很多版本
ubantu、centOS
一、常用命令
1.cd 切换路径
2.ls 列出当前路径下所有文件
3.文件或文件夹的操作
（1）cp -[opt] sourcefile dstpath
-r，递归复制路径
-f，强制复制
（2）rm
（3）mv
4.jps 查看运行进程
5.ps ef|gref 文本，查看该文本在哪些进程出现
6.kill 关闭进程
kill -9 进程id ...]]></description><category></category></item><item><title><![CDATA[项目开发中遇到的前端知识点]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/100602283</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/100602283</guid><author>OpenWorld1</author><pubDate>Sat, 07 Sep 2019 17:20:24 +0800</pubDate><description><![CDATA[一、开发中遇到的前端知识点
1、eval
https://www.cnblogs.com/objectorl/archive/2009/12/29/eval-and-JSON.html
eval函数将把最后一个表达式或者语句所包含的值或引用作为返回值
（1）对json格式返回做转换
（2）转换方式
加上圆括号的目的是迫使eval函数在评估JavaScript代码的时候强制将括号内的表达式（expr...]]></description><category></category></item><item><title><![CDATA[单点登录实现流程]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/99705287</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/99705287</guid><author>OpenWorld1</author><pubDate>Sun, 18 Aug 2019 15:44:54 +0800</pubDate><description><![CDATA[最近在公司做了一个单点登录的需求，由于之前没做过，花了一点时间也走了一点弯路。但是，了解了实现的原理和过程过后，就对单点登录的设计思想更明白了。
下面就简单总结了下这个思考过程。
一、单点登录
单点登录（Single Sign On），简称为 SSO，是目前比较流行的企业业务整合的解决方案之一。
二、单点登录背景
一个大的应用系统内部，有很多的子系统，每个子系统都有相应的一套登录认证机制，对用户来...]]></description><category></category></item><item><title><![CDATA[GitHub安装及配置]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/99211402</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/99211402</guid><author>OpenWorld1</author><pubDate>Sun, 11 Aug 2019 17:56:30 +0800</pubDate><description><![CDATA[使用开源网站GitHub来管理项目代码，免不了要做push推代码和pull拉代码，执行这些操作，需要一个工具来连接GitHub网站和本地代码仓库。

一、下载Git

无论是官网还是其他途径下载Git，速度太慢，在网上查了下，通过阿里云镜像地址下载速度快多了，镜像是个好东西呀~

https://npm.taobao.org/mirrors/git-for-windows/



二、安装Git...]]></description><category></category></item><item><title><![CDATA[常用软件整理]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/98796877</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/98796877</guid><author>OpenWorld1</author><pubDate>Wed, 07 Aug 2019 23:31:26 +0800</pubDate><description><![CDATA[作为一名开发人员，随着工作年限增加，根据不同应用场景，所要使用的软件各不相同，而我们接触的软件一定会逐渐增多。

整理软件，便于我们遗忘时快速索引；通过整理常用软件和工具，也能提高我们的开发和做事效率。



基础开发环境及软件搭建：


			序号
			
			
			软件
			
			
			作用
			
		
			1
			
			
			Jdk
			
			
			Java开发环...]]></description><category></category></item><item><title><![CDATA[java开发定位思维和思路]]></title><link>https://blog.youkuaiyun.com/OpenWorld1/article/details/95661590</link><guid>https://blog.youkuaiyun.com/OpenWorld1/article/details/95661590</guid><author>OpenWorld1</author><pubDate>Fri, 12 Jul 2019 21:10:23 +0800</pubDate><description><![CDATA[【定位思维篇】

第一步：看代码首先应该熟悉每一个功能模块，知道每个功能按钮是干什么用的，执行后程序会做出什么样的反应，一边研究每一个按钮的功能，一边思考它是如何和数据交互的和其他功能关联起来的！如果是我设计我将如何设计，思考将贯穿始终，看代码一直是思考和记忆力以及耐力的综合考量！如果你没这个勇气或者说你不想这么做，那么你的技术将永远不会提升，你也将永远的被进不到“大师”的行列！

第二步：打开“...]]></description><category></category></item></channel></rss>