`
weiqingfei
  • 浏览: 317457 次
  • 性别: Icon_minigender_1
  • 来自: 黑洞
社区版块
存档分类
最新评论
文章列表
1.android系统启动第一个进程是init。   2.init会fork出一个叫zygote的进程。(所有的应用进程都是由zygote fork出来的)    zygote进程实际上是个jvm上的进程,启动jvm,打开监听端口(registerZygoteSocket),预加载类和资源。   3.zygote启动过程中,会fork一个system_server,因为是完全复制的zygote,所以需要关闭运行到现在为止的一些东西,比如监听端口。   4.system_server里面会启动ActivityManagerService等服务,来监听创建activity的请求。 ...
 position有四种值:static, relative, absolute, fixed. 其中staic是默认值,并且static和relative是在文档流里占据位置的。 static无法设置top,left属性 relative设置的top,left属性是相对于自己在文档流里的位置的偏移。   absolute和fixed并不占据文档流。 absolute会在其祖先里找第一个不是static的控件,以它的位置为参考,设定top,left,如果没找到,那么就以body基准。 fixed是绝对的以可见区域为基准设定偏移位置。   float本身也不存在于文档流里,它实 ...
java中的SoftReference和WeakReference已经出来很久了,但是到现在为止开发的程序里几乎都没有直接用到它们。 用不到,那就说明还没有碰到需要用它们的场景,当然也有一个原因,就是不知道怎么用。   简单来说,java中的引用默认都是强引用,只要当引用存在(就是能从根引用遍历到),GC就不会回收。 有时候,我们无法自己决定还要不要用一个实例,可能需要根据情况决定,那么就有了SoftReference和WeakReference。 SoftReference:当jvm内存不够用的时候,由jvm决定是否回收 WeakReference:无条件回收。   对于S ...
java 6以,jdk里提供了一套编译方法类,可以动态编译java source。 下面这个例子是编译字符串形式的source,直接得到编译后的class的字节进行load。   package jp.co.wqf; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; ...
jvm自带的三个classloader 1.Bootstrap classloader,是jvm的一部分,由C写成,调用的是核心库。    sun java下,可以用以下语句查看调用类路径    URL[] urls = sun.misc.Launcher.getBootstrapClassPath().getURLs();   写道 %JAVA_HOME%/jre/lib/resources.jar%JAVA_HOME%/jre/lib/rt.jar%JAVA_HOME%/jre/lib/sunrsasign.jar%JAVA_HOME%/jre/lib/jsse.jar% ...
上次大概讲了一下spring mvc的启动步骤,但是没有讲如何读取配置文件(servlet-context.xml)的,接下来着重讲一下这一步。 先看一下servlet-context.xml的namespace   xmlns="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans ...
Spring已经有点历史了,不过从来没有认真的看过。 最近比较闲,便瞄了两眼Spring,用一个东西工作,自然是要先看看这东西内部是怎么构成的,否则用的时候,踩在坑里,也不知道如何跳出来。 了解Spring最快的方法,当然是从启动开始。 Spring和Struts一样,是通过一个Servlet来接管web服务的,首先看一下web.xml的定义   <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http: ...
Laravel的一段程序   Illuminate\Foundation\Http\Middleware\VerifyCsrfToken   /** * Determine if the session and input CSRF tokens match. * * @param \Illuminate\Http\Request $request * @return bool */ protected function tokensMatch($request) { $se ...
aws一个账号默认只有5个弹性IP,当部署应用的EC2比较多的时候,弹性IP显然是不够用的。 解决方案无非以下几种: 1.申请追加弹性IP    由于IPv4是稀缺资源,你要有充分的理由才能申请到,并且需要额外花钱。   2.前台放置一台EC2进行后台转发    这个方法需要搭建转发服务器,并且当流量比较大的时候,对这台前置的EC2要求也比较高。   3.使用Route53    其实这才是最好的解决方法,EIP虽然比较难申请,但是每台EC2的公开DNS都还是有的,虽然每次重启都会变话,但没关系,Route53是由api的,只要EC2的启动脚本,通过meta-data找到公 ...
salesforce里对于权限的控制非常详尽,能够根据设定,从各个方面对数据进行控制。 1.对于Object本身的控制,这个控制是通过Profiles,Permission Sets,来做,可以控制用户是否可以对Object进行[读,写,修改,删除],以及控制Object里的每个项目的[非可见,只读,可写]。   2.对于Object里的Record来讲,是通过以下几种设定方法来控制。    a.Profiles       可以对一个Object里的所有记录进行View all,以及Modify all设定,一旦设定,便对这个Object里的所有数据具有了查看,或者修改的权限。 ...
Node.js里的异步调用是通过回调函数实现的,不管javascript的语言特性如何转变,至少在Node.js的native api里,肯定是回调函数。 比如读取文件   fs.readFile('/home/wqf/a.txt', function (err, data) { if (err) throw err; console.log(data); fs.readFile('/home/wqf/b.txt', function (err, data) { if (err) throw err; console.log(data); } ...
PHP不使用加速器的话,通常都是读取php文件,解析,执行的,尤其对于使用了框架的php程序,这个过程就很慢了。 如果使用了加速器,只有第一次会读取,解析,以后每次就只有执行。 PHP从5.5.X开始就已经内置了OPCache加速器,所以没有特别的需求,使用这个加速器就好了。   开启很简单,只要在php.ini添加一行,便可。 写道 zend_extension=php_opcache.dll  由于这个模块还是属于zend_extension,使用extension=php_opcache.dll会报错 然后就是对于参数进行基本的设值,通常设值一下几个主要的参数即可 更 ...
1.使用Form中的抽象方法    Illuminate\Foundation\Http\FormRequest protected function getValidatorInstance() { $factory = $this->container->make('Illuminate\Validation\Factory'); if (method_exists($this, 'validator')) { return $this->container->call([$t ...
创建event handler 写道 php artisan handler:event QueryLogTracker   QueryLogTracker.php <?php namespace App\Handlers\Events; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Log\Writer; use Monolog\Logger as Monolog; use App; class ...
$pageName = 'p'; $perPage = 15; $currentPath = $request->url(); $query = $request->all(); $currentPage = $request->input($pageName,1); $offset = $perPage * ($currentPage - 1); $totalPages = DB::select('select count(*) as aggrega ...
Global site tag (gtag.js) - Google Analytics