<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[走向大厂的日子]]></title><description><![CDATA[不怕大牛比自己牛，就怕大牛比自己更努力]]></description><link>https://blog.youkuaiyun.com/wang4510072288</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wang4510072288]]></copyright><item><title><![CDATA[java泛型]]></title><link>https://blog.youkuaiyun.com/wang4510072288/article/details/121438261</link><guid>https://blog.youkuaiyun.com/wang4510072288/article/details/121438261</guid><author>wang4510072288</author><pubDate>Mon, 22 Nov 2021 10:42:21 +0800</pubDate><description><![CDATA[1。什么是泛型

   方法都有形参和实参，那假如将所使用的的类型也参数化的话，就可以复用更多的逻辑，

泛型的好处：1.增加了代码的复用性。

           2.将错误提前至编译器，而不是运行时

           2.泛型中的类型在使用时指定，不需要强制转换类型   

   

泛型就是将类型参数化，在使用的时候将要使用的类型传入就变成类型实参

根据泛型使用地方可以分为

 a.可以标记在接口上，叫泛型接口

 ...]]></description><category></category></item><item><title><![CDATA[ThreadLocal源码分析]]></title><link>https://blog.youkuaiyun.com/wang4510072288/article/details/119485406</link><guid>https://blog.youkuaiyun.com/wang4510072288/article/details/119485406</guid><author>wang4510072288</author><pubDate>Sat, 07 Aug 2021 15:22:06 +0800</pubDate><description><![CDATA[1.基本介绍

    （1）每一个Thread里面有一个ThreadLocalMap对象，里面可以存储ThreadLocal（hashcode是重写的，使用的是黄金分割数，目的是为了让他在ThreadLocalMap中分布的更均匀）为key，set的数据为value放入ThreadLocalMap中

    （2）ThreadLocal本身体是强引用，但是作为ThreadLocalMap的Entry的key时候，会继承弱引用，当ThreadLocal的实例数据被强引用释放时，Entry还...]]></description><category></category></item><item><title><![CDATA[java jmm 多线程 线程池]]></title><link>https://blog.youkuaiyun.com/wang4510072288/article/details/119334367</link><guid>https://blog.youkuaiyun.com/wang4510072288/article/details/119334367</guid><author>wang4510072288</author><pubDate>Sat, 07 Aug 2021 13:38:05 +0800</pubDate><description><![CDATA[1.计算机五大核心组成部分

  控制器，运算器，存储器，输入，输出设备

现代的计算机如下，其中cpu跟内存是核心比较重要



2.cpu指令结构

控制单元，运算单元，数据单元



3.cpu缓存结构（L1L2L3）

   A。从内存将数据读入cpu速度太慢，然后添加了缓存，缓存大小顺序 内存&gt;L3&gt;L2&gt;L1

读写速度L1&gt;L2&gt;L3&gt;内存,

   B。缓存是由最小存储块-缓存行（cacheline）组成，缓存行的大小通常是64byte...]]></description><category></category></item><item><title><![CDATA[jvm总结]]></title><link>https://blog.youkuaiyun.com/wang4510072288/article/details/119062375</link><guid>https://blog.youkuaiyun.com/wang4510072288/article/details/119062375</guid><author>wang4510072288</author><pubDate>Sun, 25 Jul 2021 21:13:28 +0800</pubDate><description><![CDATA[总结：java运行环境运行起来之后，jvm也被系统创建，main线程会根据jvm运行数据区，创建线程私有的虚拟机栈，PC本地方法栈，然后jvm会将main方法所在的类所产生的字节码，使用类加载器加载到内存当中来并且将类的信息，静态变量，常量编辑后的代码放入方法区，并在堆中产生了一个Class对象来映射该类的内存结构。随后main方法进入虚拟机栈，PC计数器开始运行，遇见类先尝试去父加载器中查询是否被加载，否则的话自己去加载（加载字节码相当于读写io比较慢，有缓存，不需要一直读写io），然后产生的对象会被放入]]></description><category></category></item><item><title><![CDATA[对象Object]]></title><link>https://blog.youkuaiyun.com/wang4510072288/article/details/110861590</link><guid>https://blog.youkuaiyun.com/wang4510072288/article/details/110861590</guid><author>wang4510072288</author><pubDate>Tue, 08 Dec 2020 11:27:30 +0800</pubDate><description><![CDATA[1.Object的组成

键值对的形式表达出来的，

键 可以是字符串

当时数字的时候，会被自动转变为字符串

当不符合命名规则的时候，必须加上引号才能当键的名称

值是另外一个对象或者函数的时候，值里面放的是对应的内存地址，

2.属性的调用

obj.p obj[p] 但键名是数字的时候只能通过obj[123]来访问，不过一般也不用

3.属性的存在性 in


'p' in obj // true

不管是自身还是继承的，只要有，即为true

只有通过hasOwnProperty 来判断是否...]]></description><category></category></item><item><title><![CDATA[Number对象]]></title><link>https://blog.youkuaiyun.com/wang4510072288/article/details/110857710</link><guid>https://blog.youkuaiyun.com/wang4510072288/article/details/110857710</guid><author>wang4510072288</author><pubDate>Tue, 08 Dec 2020 11:03:09 +0800</pubDate><description><![CDATA[js中是以浮点型的形式存的数据，因此1===1.0 true

number的范围 Number.MAX_VALUE Number.MIN_VALUE

Infinity NaN typeOf 均为number

NaN（NaN与任何类型的变量比较（大于小于等于）均为false哪怕是它自身包含Infinity）的产生

（1）5-‘x’ NaN与数字（仅限数字）的运算均为false

（2）数学层面，函数取不到的值均为NaN 例如


Math.log(-1) // NaN

（3）0/0

(...]]></description><category></category></item><item><title><![CDATA[Object对象]]></title><link>https://blog.youkuaiyun.com/wang4510072288/article/details/110739969</link><guid>https://blog.youkuaiyun.com/wang4510072288/article/details/110739969</guid><author>wang4510072288</author><pubDate>Sun, 06 Dec 2020 16:45:24 +0800</pubDate><description><![CDATA[1.Object()

  （1）如果参数为空（或者为undefined和null），Object()返回一个空对象。


var obj = Object();
// 等同于
var obj = Object(undefined);
var obj = Object(null);

obj instanceof Object // true

  （2）如果参数是原始类型的值，Object方法将其转为对应的包装对象的实例


var obj = Object(1);
obj instanceof ...]]></description><category></category></item><item><title><![CDATA[js比较运算符]]></title><link>https://blog.youkuaiyun.com/wang4510072288/article/details/110726193</link><guid>https://blog.youkuaiyun.com/wang4510072288/article/details/110726193</guid><author>wang4510072288</author><pubDate>Sat, 05 Dec 2020 21:33:36 +0800</pubDate><description><![CDATA[JavaScript 一共提供了8个比较运算符。


&gt; 大于运算符


&lt; 小于运算符


&lt;= 小于或等于运算符


&gt;= 大于或等于运算符


== 相等运算符


=== 严格相等运算符


!= 不相等运算符


!== 严格不相等运算符
这八个比较运算符分成两类：相等比较和非相等比较。
非相等的比较，算法是先看两个运算子是否都是字符串，如果是的，就按照字典顺序比较（实际上是比较 Unicode 码点）；否则，将两个运算子都转成数值，再比较数值的大小
着重说下-非相等的运算]]></description><category></category></item><item><title><![CDATA[Object.prototype.valueOf()和toString()方法]]></title><link>https://blog.youkuaiyun.com/wang4510072288/article/details/110708202</link><guid>https://blog.youkuaiyun.com/wang4510072288/article/details/110708202</guid><author>wang4510072288</author><pubDate>Sat, 05 Dec 2020 18:57:51 +0800</pubDate><description><![CDATA[js对象中的valueOf()方法和toString()方法非常类似，
当需要返回对象的原始值而非字符串的时候才调用valueOf（），尤其是转换为数字的时候。
如果在需要使用原始值的上下文中使用了对象，JavaScript就会自动调用valueOf()方法。
 valueOf()方法是Object的原型方法，每个对象都具有该方法，但是各对象返回的值有一定的区别。
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201205184553290.png?x-oss-pr]]></description><category></category></item><item><title><![CDATA[jenkins+svn+gradle+ssh+本地二维码（告别蒲公英fir）+360加固 释放双手尽情玩耍]]></title><link>https://blog.youkuaiyun.com/wang4510072288/article/details/88975318</link><guid>https://blog.youkuaiyun.com/wang4510072288/article/details/88975318</guid><author>wang4510072288</author><pubDate>Wed, 03 Apr 2019 15:41:28 +0800</pubDate><description><![CDATA[前言：

 做android移动开发的肯定经常会面临被公司各个人员索要apk包的情况，身为程序员的我们最讨厌的就是在写代码的时候被不停的被测试产品或者其他人打测试环境生产环境或者开发环境的包，有的需要改版本号，有的需要改动版本code，有的需要对apk包进行加固，甚至在给对方打好包用微信传过去的时候，微信同志还会自动给你加上一个.1的后缀，导致小白用户始终装不上apk，而对你啧啧，这个...]]></description><category></category></item><item><title><![CDATA[自定义密码输入框]]></title><link>https://blog.youkuaiyun.com/wang4510072288/article/details/72466671</link><guid>https://blog.youkuaiyun.com/wang4510072288/article/details/72466671</guid><author>wang4510072288</author><pubDate>Thu, 18 May 2017 14:29:40 +0800</pubDate><description><![CDATA[前言：看了好多自定义控件说实话道理上也可以说出一下但是实际上让我实实在在的想要做出一个成功和考虑齐全的view来说还是有些困难，文章也许有所借鉴，但确实是自己真真实实弄出来的，主要是记录一些实际的经验和点点滴滴，项目暂时不算紧急，提升自己随时随刻首先，贴出我们想要的实际效果图 
 
通过以上的效果图，现在咱们做下实际的分析，然后细致到相应的代码实现。要实现的功能如下： 
1.密码框分为下划线和方格]]></description><category></category></item></channel></rss>