Java面试总结-线程
1、创建一个线程
创建线程主要分为两个方法
implements Runnable接口并实现run()方法,然后由Runnable对象创建一个Thread对象,调用Tread的start()方法启动线程。
extends Thread 构建一个Thread类的子类,复写run()方法。该方法目前已不再推荐,应该从运行机制上减少需要并行运行的任务数量。
警告:不要调用Thread类或Runnable对象的run方法。直接调用run方法,只会执行同一个线程中的任务,而不会启动新线程??。应该调用Tread.start方法,这个方法将创建一个执行run方法的新线程。
```
/**
* 创建线程的两种方式
继续阅读 »
CH41 Creating a Full Plugin
看到这里你可以停了,因为前面的姿势足够你完善自己的~/.vimrc脚本,去修复别人脚本的bug了,绝无讽刺的意思
往下学之前,建议先玩下Potion语言,这是个很小的语言,使用它的目的是为了辅助我们写vim script
CH42 Plugin Layout in the Dark Ages
~/.vim/colors/在这里的文件记录了vim的颜色主题,如果运行:color xxx就能看~/.vim/colors/xxx.vim的配色方案了,查看当前配色都有哪些用:hi
~/.vim/plugin/在这里的文件每次vim启动都会运行一次
~/.vim/ftdetect/这
继续阅读 »
Handler - Message - Looper 说起来也就是这么一回事,Looper实现在Thread中负责不断的循环监听处理Message,要不然Thread运行完就自己关了。当你不需要的时候就可以把Looper关了,线程就自动运行完了。
Message
实现了序列化接口,what区分类型,arg的参数使用简单的整形,obj存储对象,data存储一个bundle,target是一个Handler。剩下的就是搞了个对象池回收Message,所以才会推荐用Message.obtain()来新建,其实就是从回收池里拿东西。
总之没什么好说的。
Looper
``` java
继续阅读 »
编译型和解释型:
1.1 编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件。
1.2 解释型语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译。
动态语言和静态语言(对应变量而言):
2.1 动态语言:一种在执行期间才去发现数据类型的语言, 动态语言是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。pythton
2.2 静态语言:即一种在编译时,数据类型是固定的语言。大多数静态类型定义语言强制这一点,它要求你在使用所有变量之前要声明它们的数据类型。C、C++、Java
强类型定义语言和
继续阅读 »
定时任务是非常常见的需求,比如定期的去汇总数据,定期的清除垃圾等。
Java 提供了很多定时任务的方案,下面简单的列举一下。
more
利用 thread 的sleep
新开一个线程,死循环运行,通过 sleep 的达到定时运行的效果。
public static void main(String[] args) {
final long timeInterval = 1000;
Runnable runnable = new Runnable() {
public void run() {
while (true) {
继续阅读 »
随着公司的业务的发展有幸接触到OpenCV 这个图形库,这篇文章主要是总结一下在Mac 上使用OpenCV做一个动态的广告植入。
OpenCV 是什么:
OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。
继续阅读 »
Splunk的安装及配置
Splunk 是一个运行于多平台环境下的日志分析软件和系统故障诊断工具。
Splunk 可以支持任何服务器产生的日志,其对日志进行处理的方式是进行高效索引之后让管理员可以对日志中出现的各种情况进行搜索,并且通过非常好的图形化的方式展现出来。
简单介绍下安装及配置流程
1.下载
上splunk官网,选择Free Download,选择对应的操作系统版本,点击开始下载。 其实不能直接下啊,得先注册账户啊,和Jdk下载一样。
老老实实注册吧。注册完毕,登陆,继续Free Download,终于可以了。
发现其实不用注册都行,前提是你知道下载地址。这里给个splunk-6.2.1-245427-Linux-
继续阅读 »
“程序写出来是给人看的,附带能在机器上运行。”
《计算机程序的结构与解释》卷首语
同构的JSON-Schema(Isomorph-JSON-Schema)是用来描述JSON数据的格式,这种格式最大的特点就是Schema与实际JSON数据的结构完全相同,并且语法简洁,从Schema可以直观的看出实际数据的结构。
继续阅读 »
编译运行配置
编写Gemfile:
source 'https://rubygems.org'
gem 'jekyll'
gem 'jekyll-sitemap'
gem 'jekyll-paginate'
gem 'html-proofer'
gem "codeclimate-test-reporter", group: :test, require: nil
继续阅读 »
本文主题是如何动态获取实例属性的值。
Objective-C运行时库已经有这样的功能。使用这些方法需要加头文件。
```
import
```
要用到的方法是:
objc_property_t *class_copyPropertyList(Class cls, unsigned int *outCount)
继续阅读 »