代码改变世界

Java 类加载器

2017-08-14 13:02 by l4y, 326 阅读, 0 推荐, 收藏, 编辑
摘要:类加载器的主要工作是,通过一个类的全限定名来获取描述此类的二进制字节流。 对于任意一个类,由加载它的类加载器和这个类本身一同确立其在 Java 虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。换言之,比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即 阅读全文

Java 加载、链接、初始化

2017-08-14 00:26 by l4y, 1163 阅读, 0 推荐, 收藏, 编辑
摘要:JVM 动态地加载、连接、初始化类或接口(在本文之后的篇幅中,我将使用“类”来表示“类和接口”)。这里我先贴上 Java 虚拟机规范的原文: Loading is the process of finding the binary representation of a class or inter 阅读全文

Java 类文件结构

2017-08-10 16:56 by l4y, 359 阅读, 0 推荐, 收藏, 编辑
摘要:Java 诞生之时有句著名的宣传口号“Write Once, Run Anywhere.”。但是,Java 语言本身不具备跨平台的能力,而是 JVM 提供了跨平台的能力。 事实上,不仅 Java 可以运行在 JVM 上,现在已经出现了其他的语言可以运行在 JVM 上,如 Clojure、Scal 阅读全文

Java 内存分配策略

2017-08-10 13:44 by l4y, 1240 阅读, 1 推荐, 收藏, 编辑
摘要:内存有分配,就有回收,Java 的 GC 算法在 "前一篇文章" 中已经介绍过了,这篇文章着重介绍 Java 的内存分配策略。 从大方向讲,除去 JIT ,对象的内存分配就是在堆上分配,对象主要分配在新生代的 Eden 区上,如果启动了本地线程缓存,将按线程优先在 TLAB 上分配。少数情况也会直接 阅读全文

Java 垃圾回收算法

2017-08-09 23:37 by l4y, 716 阅读, 0 推荐, 收藏, 编辑
摘要:在之前 "Java 运行期数据区" 一文中,介绍了运行时内存的各个部分。其中程序计数器、虚拟机栈、本地方法栈都随线程消亡,所以,这几个区域的内存分配和回收都具备确定性。而 Java 堆和方法区不同,我们只有在程序运行期间才能知道会创建哪些对象,这部分的内存分配和回收都是动态的,这也正是垃圾回收器关注 阅读全文

Java 运行期数据区

2017-08-09 20:07 by l4y, 537 阅读, 0 推荐, 收藏, 编辑
摘要:对于 Java 开发者来说,由虚拟机进行内存管理是把双刃剑,一方面免去了繁杂的内存管理工作,另一方面,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,排查问题将成为一项艰难的工作。本文主要介绍 Java 运行时的内存区域。 JVM 在执行 Java 程序的过程中,会把它所管理的内 阅读全文

Cannot resolve taglib with uri http://java.sun.com/jsp/jstl/core

2017-05-19 12:52 by l4y, 3107 阅读, 0 推荐, 收藏, 编辑
摘要:问题 《Spring 实战》第5章,在 IDEA 中 提示 。 web app 版本:3.1 解决方法 1. 分别在、下载 和`jstl.jar`; 2. 在 IDEA 中,将上边的两个 Jar 作为 library 添加。 阅读全文

Swift: 枚举

2016-11-10 21:30 by l4y, 397 阅读, 0 推荐, 收藏, 编辑
摘要:Enumerations in Swift are flexible, and do not have to provide a value for each case of the enumeration. If a value(known as "raw" value) if provied f 阅读全文

Swift的闭包(二):捕获值

2016-11-08 21:23 by l4y, 1844 阅读, 0 推荐, 收藏, 编辑
摘要:闭包可以从定义它的上下文中捕获常量和变量。 在Swift中,捕获值最简单的例子是嵌套函数,举个例子: 在这个例子中incrementer()捕获两个值,分别是amount、runningTotal。可以运行一下,观察结果: 注意:如果你把闭包赋值给一个类实例的一个属性,并且闭包通过指向(refer 阅读全文

Swift的闭包(一):闭包简介、闭包表达式的优化

2016-11-08 19:19 by l4y, 538 阅读, 0 推荐, 收藏, 编辑
摘要:定义:Closures are self-contained blocks of functionality that can be passed around and used in your code. 闭包以下面三种形式中的一种存在: <!--StartFragment--> Swift的闭包 阅读全文

iOS 用户体验之音频

2016-07-08 22:07 by l4y, 274 阅读, 0 推荐, 收藏, 编辑
摘要:早期某知名公司的应用有这么一个问题,如果我在听音乐时打开该应用,播放一段小视频,视频播放完成之后,音乐没有继续播放。这个问题被很多用户吐槽,很久以后,该公司终于修复了这个问题。 无论声音是应用体验的重要部分,还是作为润色,你都应该知道用户期待声音有怎样的行为。 用户可以通过音量键、静音开关、耳机,以 阅读全文

【iOS】Core Bluetooth

2016-04-21 19:50 by l4y, 233 阅读, 0 推荐, 收藏, 编辑
摘要:本文介绍蓝牙4.0的一些基本知识。 基本概念、服务器、客户端 蓝牙LE是一个基于点对点的通信系统,其中一台设备作为服务器,另一台设备作为客户端。拥有数据的设备作为服务器,消费数据的设备作为客户端。 比如,心率监测器、温控器、手环等,都可以是服务器。服务器通过广播确定自己产生什么类型的数据并把数据发送 阅读全文

【iOS】3D Touch

2016-04-10 18:36 by l4y, 237 阅读, 0 推荐, 收藏, 编辑
摘要:文章内容来源于Apple的开发者文档:https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/Adopting3DTouchOniPhone/,这个文档中还提供了几个示例,建议直接阅读该文 阅读全文

golang中channel的超时处理

2016-04-09 12:11 by l4y, 814 阅读, 0 推荐, 收藏, 编辑
摘要:并发中超时处理是必不可少的,golang没有提供直接的超时处理机制,但可以利用select机制来解决超时问题。 阅读全文

Objective-C 中的 BOOL

2016-03-02 21:30 by l4y, 337 阅读, 0 推荐, 收藏, 编辑
摘要:之前开发了一个针对单个数据模型,自动建表、增删改查等操作的 ORM 库,后边在 iPhone 5c 上使用时,出现了 crash 的情况。 该项目在 Github 开源,项目地址为 "SXJDatabaseManager" 。 经定位,问题就出在了模型中的 BOOL 类型的属性上。 看下 BOOL 阅读全文

2015年总结

2016-02-28 11:19 by l4y, 236 阅读, 0 推荐, 收藏, 编辑
摘要:很久没更新博客了,原因是发现OneNote记笔记更方便,所以技术性的东西就不写博客了。这篇就总结下2015年,说下2016年的计划(仅仅是计划,谁知道我会不会抽筋呢)。 对于提高待遇这事一直是说不出口的,所以就有了想提薪的时候,就提离职,一提离职就加薪,两次了,不知道公司到底压榨了我多少啊。公司并不 阅读全文

load vs. initialize

2015-10-21 13:03 by l4y, 264 阅读, 0 推荐, 收藏, 编辑
摘要:这篇文章来对比一下NSObject类的两个方法, 与`+initialize`。 Invoked whenever a class or category is added to the Objective C runtime; implement this method to perform cl 阅读全文

正则表达式

2015-07-09 20:29 by l4y, 432 阅读, 0 推荐, 收藏, 编辑
摘要:正则表达式是一种文本模式,包括普通字符(如字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。用途 测试字符串内的模式例如,测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。替换文本使用正则表达式来识别文档中的特定文本... 阅读全文

When does layoutSubviews get called?

2015-06-30 14:43 by l4y, 271 阅读, 0 推荐, 收藏, 编辑
摘要:转自:http://blog.logichigh.com/2011/03/16/when-does-layoutsubviews-get-called/It’s important to optimize any UIView layoutSubviews method you create, as... 阅读全文

使用Quartz 2D擦除图片

2015-06-30 00:01 by l4y, 289 阅读, 0 推荐, 收藏, 编辑
摘要:Quartz 2D 是一个强大的二位图像绘制引擎,在开发中如果遇到需要高度自定义的控件,我们就可能需要用Core Graphics进行绘制。 这几天一同事开发一个聊天中的一个子模块,A 画一幅图,然后发给 B。这需要使用到 Core Graphics,我看了他的代码,图形绘制、填充等 API 使用当 阅读全文