- 博客(33)
- 资源 (3)
- 收藏
- 关注
原创 Java8 Lambda表达式教程
1. 什么是λ表达式 λ表达式本质上是一个匿名方法。让我们来看下面这个例子: public int add(int x, int y) { return x + y; }转成λ表达式后是这个样子: (int x, int y) -> x + y;参数类型也可以省略,Java编译器会根据上下文推断出来: (x, y
2016-03-30 11:30:36 799
原创 面试乱谈谈
今天博主这个小白去面试了一个大公司,这是博主第一次面试 这么一个上市大公司 ,那给博主紧张的。 进去就被 保安大哥给拦住了,额…扯远了,回归正题. 今天博主面试了这家大公司 面试题就两道,两道算法题,算是很简单的算法题,可是博主太傻X了,用了最傻X的两层for循环解决问题.导致时间复杂度变成了O(N^2) 还好本博主机制后来想到了补救之道 ,话不多说,放上面试题(PS 对面试题进行了改造,因为该
2016-02-24 16:50:52 491
原创 面试乱谈谈
今天博主这个小白去面试了一个大公司,这是博主第一次面试 这么一个上市大公司 ,那给博主紧张的。 进去就被 保安大哥给拦住了,额…扯远了,回归正题. 今天博主面试了这家大公司 面试题就两道,两道算法题,算是很简单的算法题,可是博主太傻X了,用了最傻X的两层for循环解决问题.导致时间复杂度变成了O(N^2) 还好本博主机制后来想到了补救之道 ,话不多说,放上面试题(PS 对面试题进行了改造,因为该
2016-02-24 16:50:38 449
原创 ListView性能优化
对于一个应用来说,用户体验是一个App来说除了定位以外,最重要的一个因素,而ListView这个组件是一个非常消耗内存的组件,对ListView组件的优化直接影响了应用的用户体验 最简单的处理 提升 ListView 的运行效率 之所以说 ListView 这个控件很难用, 就是因为它有很多的细节可以优化, 其中运行效率 就是很重要的一点。 目前我们ListView的运行效率是很低的, 因为
2016-02-15 17:53:13 658
原创 Application Framework层介绍
http://write.blog.csdn.net/postedithttp://write.blog.csdn.net/postedithttp://write.blog.csdn.net/posteditActivity Manager 用来管理应用程序生命周期并提供常用的导航回退功能。Window Manager提供一些我们访问手机屏幕的方法。屏幕的透明度、亮度、背
2016-02-02 18:36:34 1545 2
原创 Golang的变量常量及基本类型
1,变量变量的声明: Go语言的变量声明方式与C和C++语言有明显的不同。对于纯粹的变量声明, Go语言引入了 关键字var,而类型信息放在变量名之后,示例如下:1.1变量的声明var v1 intvar v2 stringvar v3 [10]int // 数组var v4 []int // 数组切片var v5 struct {f int}var v6 *int // 指针v
2016-02-01 19:04:53 13561
原创 Golang语言特性
好久没有更新博客了,前段时间博主一个再找实习,所以一直没有更新自己的博客,以后会坚持每周一篇2016年刚开始,博主就给自己制定了一个学习计划,学习golang ,至于为什么学习golang呢,这篇文章就是博主学习golang的原因就是因为他的特性,博主是看这本《Go语言编程》学习Golang的,Go语言编程Go语言最主要的特性:自动垃圾回收更丰富的内置类型函数多返回值错误处理匿名函数和闭包
2016-02-01 13:29:12 1136
原创 恭喜自己获得了准博客专家
尊敬的用户:您好!感谢您对CSDN博客的关注和认可。 根据CSDN博客专家申请规则:http://blog.csdn.net/experts/rule.html,您的博客还没有达到申请条件,因此暂时还不能成为博客专家。但您积极发表博文分享IT技术和经验,所以我们授予您“准专家”勋章。自授予勋章之日起六个月内,如您的博客文章达到专家标准将直接晋升为博客专家,未达到标准则满六个
2016-01-17 18:48:57 606
原创 Android内核之Context
Context是什么?一个Context意味着一个场景,一个场景就是用户和操作系统交互的一个过程,比如当你打电话时,场景包括电话程序对应的界面,以及隐藏在界面后的数据;当你看短信界面时,场景包括短信界面,以及隐藏在背后的数据. Activity是基于Context,而Service类也是基于Context。Activity除了基于Context类外,还实现了一些其他重要接口,从设计的角度来
2016-01-08 23:41:14 518
原创 Android内核之FrameWork学习
前言 任何控制类程序都有一个入口,语言的入口是由处理器内部的复位(Reset)中断向量表决定的;C程序入口是main()函数;JAVA程序的入口必须是某个类的静态成员方法main() Android程序也不例外,那么Android程序入口在哪里呢?Android FrameWork都包含哪些系统服务?这些系统服务是如何与AndroidAPK程序配合的?看完这个博客你就会对FrameWor
2015-12-20 03:51:40 990
原创 Android内核学习之Binder
一,Binder框架讲解 Binder是一种框架,这种架构提供了服务端接口,Binder驱动,客户端接口三个模块 服务端 一个Binder服务端实际上就是一个Binder类对象,该对象那个一旦创建,内部就会创建一个隐藏的线程,该线程就会接收Binder驱动发送的消息,收到消息后,会执行Binder中的onTransact()函数,并按照该函数的参数执行不同的服务代码,因此 ,要是先
2015-12-15 22:15:56 647
原创 设计模式之代理模式
代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式一般涉及到的角色有: 抽象角色:声明真实对象和代理对象的共同接口;代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实
2015-12-11 21:33:11 438
原创 JAVA性能优化之设计模式
**设计模式**设计模式是前人工作的总结和提炼.通常,被人们广泛流传的设计模式都是对于一类问题的成熟的解决方案.如果能合理的使用设计模式,不仅系统能更容易的被人理解,同时还能是系统更加合理的结果.我就归纳了一些设计模式,能够提升软件性能的设计模式.**单例模式**单例模式是设计模式中最为普遍的模式之一它是一种对象创建模式.用于一个对象的具体事例,它可以确保系统中一个类只会产生一个该类的实例.在
2015-12-11 19:59:26 1080
原创 JAVA性能调优之基本调优策略和手段
性能优化的一般步骤 对系统软件进行优化,首先需要有明确的性能目标,清楚地指出优化的对象和最终目的.其次,需要在目标平台上对软件进行测试,通过各种性能 监控和统计工具,观测和确认当前的系统是否已经达到相关目标,若已经达到,则没有必要再进行优化;若当前系统性能尚未达到优化目标.则需要查找当前的性能瓶颈. 可能成为性能瓶颈的因素有很多,比如:磁盘I/O,网络I/O和CPU.当找
2015-12-11 13:23:39 937
原创 JAVA性能优化的五种方式
一,JAVA性能优化之设计优化 设计优化处于性能优化手段的上层,它往往需要在软件开发之前进行,在软件开发之前,系统架构师应该就评估系统可能存在的各种潜在问题和技术难点,并给出合理的设计方案,由于软件设计和系统架构对软件整体设计质量有决定性的影响,所以,设计调优对系统的性能影响也是最大的,如果说,代码优化,JVM优化都是对系统微观层次的“量”的优化,那设计优化就是对系统”质”的优化. 设计优化
2015-12-11 10:37:37 1804
原创 自定义布局View
引入布局 如果你用过 iPhone 应该会知道, 几乎每一个 iPhone应用的界面顶部都会有一个标题栏, 标题栏上会有一到两个按钮可用于返回或其他操作(iPhone 没有实体返回键) 。现在很多的 Android程序也都喜欢模仿 iPhone的风格,在界面的顶部放置一个标题栏。虽然 Android系 统已经给每个活动提供了标题栏功能,但这里我们仍然决定不使用它,而是创建一个自定义 的标题
2015-11-13 07:52:55 704
原创 Activity的生命周期
活动的生存期 Activity 类中定义了七个回调方法,覆盖了活动生命周期的每一个环节,下面我来一一 介绍下这七个方法。 1. onCreate() 这个方法你已经看到过很多次了,每个活动中我们都重写了这个方法,它会在活动 第一次被创建的时候调用。你应该在这个方法中完成活动的初始化操作,比如说加载布 局、绑定事件等。 2. onStart() 这个方法在活动由不可见变为可见的时候
2015-11-13 07:48:26 567
原创 Activity的四种启动模式
活动的启动模式对你来说应该是个全新的概念, 在实际项目中我们应该根据特定的需求 为每个活动指定恰当的启动模式。启动模式一共有四种,分别是 standard、singleTop、 singleTask 和 singleInstance,可以在 AndroidManifest.xml 中通过给标签指定 android:launchMode属性来选择启动模式。 模式一:standard stan
2015-11-13 07:46:14 509
原创 Fragment:碎片的动态加载
动态添加碎片 碎片真正的强大之处 在于,它可以在程序运行时动态地添加到活动当中。根据具体情况来动态地添加碎片,你就 可以将程序界面定制得更加多样化。 我们还是在上一节代码的基础上继续完善,新建 another_right_fragment.xml,代码如下 所示:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/
2015-11-07 10:54:29 721
原创 不变模式
一个对象的状态在对象被创建后就不再变化,这就是所谓的不变(Immutable)模式。 一般来说,一个对象要么是可变(Mutable Object)对象,要么是不可(Immutable Object)变对象。一个可变对象的状态可以改变,而一个不变对象的状态不可以改变。不变模式的做法早在面向对象的编程中便得到应用。不变模式缺少改变自身状态的行为,因此它是关于行为的,所以可以把它划归为行为
2015-10-25 18:32:52 592
原创 Google 的GSON使用详解
一、 谷歌GSON这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。Gson支持任意复杂Java对象包括没有源代码的对象。 二、Gson解析Json步骤 A、服务器端将数据转换成json字符串 首先、服务器端项目要导入Gson的jar包到BuiltPath中。( Gson的jar:http://code.google.com/p/
2015-10-15 14:47:36 937
原创 JSON服务器的使用和客户端的解析
服务器端的使用:String jsonString="";String action_flag=request.getParameter("action_flag");if(action_flag=request.getParameter("action_flag"));{ jsonString=JsonTools.createJsonString("person",service.g
2015-10-15 14:44:10 1257
原创 C/S结构网络开发与B/S结构网络开发认识
C/S结构网络开发与B/S结构网络开发认识 C/S结构网络开发:如QQ客户端的登录界面 B/S结构网络开发:网页的客户端登录界面 2.C/S结构与B/S的差别 第一、什么是C/S结构。 C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通
2015-10-15 14:41:43 1217
原创 JAVA语言中的引用类型
Java语言的一个重要特性是引入了自动的内存管理机制,使得开发人员不用自己来管理应用中的内存。C/C++开发人员需要通过malloc/free 和new/delete等函数来显式的分配和释放内存。这对开发人员提出了比较高的要求,容易造成内存访问错误和内存泄露等问题。一个常见的问题是会产生“悬挂引用(dangling references)”,即一个对象引用所指向的内存区块已经被错误的回收并重新分配给
2015-10-15 14:23:46 600
原创 数据类型的隐性转型和显性转型
自动类型转换,也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所以Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。 转换规则 从存储范围小的类型到存储范围大的类型。 具体规则为: byte→short(char)→int→long→float→double 也就是说byte类型的变量可以自动转换为shor
2015-10-15 14:18:02 1133 1
原创 内部类的四种用法
内部类Inner Class 将相关的类组织在一起,从而降低了命名空间的混乱。 一个内部类可以定义在另一个类里,可以定义在函数里,甚至可以作为一个表达式的一部分。 Java中的内部类共分为四种: 静态内部类static inner class (also called nested class) 成员内部类member inner class 局部内部类local inner cla
2015-10-15 14:11:49 683
原创 四种创建对象的方法
(1) 用new语句创建对象,这是最常见的创建对象的方法。 (2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。 (3) 调用对象的clone()方法。 (4) 运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。一.用new语句创
2015-10-15 14:09:30 563
原创 匿名内部类用法总结
java中的匿名内部类总结 匿名内部类也就是没有名字的内部类 正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写 但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口实例1:不使用匿名内部类来实现抽象方法abstract class Person { public abstract void eat();}class Child extends Person
2015-10-15 14:06:20 455
原创 JAVA对象的加载和对象的初始化
一、对象的初始化顺序:(java类加载器加载类的顺序:) (1)加载父类(以下序号相同,表明初始化是按代码从上到下的顺序来的) 1.为父类的静态属性分配空间并赋于初值 1.执行父类静态初始化块; (2)加载子类 2.为子类的静态属性分配空间并赋于初值 2.执行子类的静态的内容; (3)加载父类构造器 3.初始化父类的非静态属性并赋于初值 3.执行父类的非静态
2015-10-15 14:04:07 532
转载 对象的强,软,弱引用
1.对象的强、软、弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。图1为对象应用类层次。 图1 ⑴强引用(Stron
2015-10-15 10:10:03 437
原创 Linux发展
GNU与Linux的成长GNU是自由软件之父 Richard Stallman在1984年组织开发的一个完全基于自由软件的软件体系,与此相应的有一分通用公共许可证(General Public License,简称GPL)。Linux以及与她有关的大量软件是在GPL的推动下开发和发布的。自由软件之父 Stallman像一个神态庄严的传教士一样喋喋不休地到处传播自由软件的福音,阐述他
2015-10-15 09:39:34 436
原创 Linux流行版本
Linux 的 作者 Linus Torvalds Linux 分为内核版本 和发行版本 Linux内核版本的官网:www.kernel.org 内核版本说明:2.6.18 —- 2代表主版本 6次版本 18末版本 Linux 发行版本 redhat ,centos ,debian,suse ,fedora,Linux红旗,gentoo Linux,turbolinux,Ubun
2015-10-15 09:17:15 475
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人