- 博客(120)
- 资源 (6)
- 收藏
- 关注
原创 属性类型
数据属性:Object.defineProperty()方法描述符对象属性必须是configurable, enumerable, writable和valueexample:var person = {}Object.defineProperty(person,"name",{configurable: false,value: "NICH"})...
2018-05-28 19:51:33
463
原创 css3选择器
基础语法: selector {property: value}h1,h2,h3,h4,h5,h6 { color: green; }1.派生选择器:li strong { font-style: italic; font-weight: normal; }2.id选择器#red {color:red}<p id="red">hello</p>...
2018-05-28 10:28:09
398
原创 Typescript-7.泛型
泛型之Hello Worldfunction identity(arg:number):number{ return arg;}function identity(arg:any):any{ return arg;}function identity<T>(arg:T):T{ return arg;}let ide = identity<String>(...
2018-05-22 15:39:10
871
原创 Typescript-6.类
类:class Greeter{ greeting:string; constructor(message: string){ this.greeting = message; } greet(){ return "Hello, " + this.greeting; }}let greeter = new Greeter("world");继承在ts里,我们可以使用常用的面向...
2018-05-21 21:05:56
326
原创 Typescript-5.函数
1.函数://和js一样,ts函数可以创建有名字的函数和匿名函数。你可以随意选择合适应用程序的方式,不论是定义一系列API函数还是只使用一次的函数。//jsfunction add(x,y){ return x + y;}let myAdd = function(x,y){return x + y;};//在js里,函数可以使用函数体外部的变量。当函数这么做时,我们说它捕获了这些变量。//e...
2018-05-21 16:40:47
481
原创 Typescript-4.接口
可选属性(属性后添加?)只读属性(readyonly vs const 变量/属性)额外的属性检查 (创建接口对象属性类型相同名字不同,正常来说是不行的)函数类型(接口内声明函数参数,返回值类型等)可索引的类型(number可做数组,string可做键值对)类类型-实现接口(也可以在接口中声明一个方法,在类里实现它)-类静态部分与实例部分的区别(暂时没看懂这诡异语法?)-继承接口(和类一样,接口也...
2018-05-18 09:37:24
251
原创 Typescript-3.箭头函数表达式,变量定义,作用域
// 箭头函数表达式(lambda表达式)// lambda表达式()=>{something}或()=>something相当于js中的函数,它的好处是可以自动将函数中的this附加到上下文中。// 尝试执行以下:var shape = { name: "rectangle", popup:function(){ console.log('This inside pop...
2018-05-15 18:49:42
1832
转载 notepad++进行单行、多行、区块注释
在用notepad++进行代码编辑的过程中,总感觉还是有keil那样可以进行多行注释的快捷方式方便,其实notepad++也可以进行单行、多行、区块注释和取消注释的。。。。。。。快捷键如下:单行、多行注释 //方式 :ctrl+k区块注释 / * */方式 :ctrl+q取消单行、多行、区块注释 ...
2018-05-15 14:04:31
1920
原创 npm install 报错
29670 error code ELIFECYCLE29671 error errno 129672 error node-sass@4.9.0 postinstall: `node scripts/build.js`29672 error Exit status 129673 error Failed at the node-sass@4.9.0 postinstall script.2967...
2018-05-14 19:45:42
339
原创 Typescript-2.基本数据类型
1.布尔值let isDone:boolean = false;2.数字let decLiteral:number = 6;3.字符串JavaScript程序的另一项基本操作是处理网页或服务器端的文本数据let name:string = "danny";orlet name:string = 'Gene';let age:number = 37;let sentence:string = 'He...
2018-05-13 18:31:46
502
5
原创 TypeSprict-1.语法小入门
类型注解 类似于 function setString(name:String),如果在传入参数时非字符串类型,编译时会报错。接口typejs有接口并且不需实现,只需要在传入时符合接口的要求结构即可。interface Person{ firstName:string; lastName:string;}function greeter(person:Person){ return "...
2018-05-13 17:37:51
567
原创 屏幕适配小结
获取屏幕像素信息的adb命令:adb shell dumpsys window displays dp:一个抽象单元,一个dp祖略相当于1px(对于160dpi的屏幕而言)sp:和dp差不多,但是可以根据用户调节系统字体来设置大小px:真实的像素。屏幕尺寸:屏幕尺寸指屏幕的对角线长度。单位是英寸,1英寸=2.54厘米屏幕分辨率:屏幕分辨率是指横纵向上的像素点数,单位是px屏幕是由像素点组成,1px...
2018-04-09 21:57:06
224
转载 adb获取android手机系统版本,已对应的api版本和硬件相关信息
原文链接:https://blog.csdn.net/zhuhai__yizhi/article/details/48003095https://blog.csdn.net/fasfaf454/article/details/51438743获取系统版本:adb shell getprop ro.build.version.release获取系统api版本:adb shell getprop ro...
2018-04-09 14:47:30
38148
原创 adb 查看包名及activity相关信息
查看当前activity调用栈:adb shell dumpsys activity + 包名adb shell dumpsys activity activities查看当前windowadb shell dumpsys window w |findstr \/ |findstr name=只有apk的情况,可以使用aaptaapt dump xmltree ColaBox.apk Androi...
2018-03-20 20:34:08
3118
原创 Android进程间通信之Messenger
Messenger Reference to a Handler, which others can use to send messages to it. This allows for the implementation of message-based communication across processes, by creating a Messenger pointing to a...
2018-03-13 22:08:09
188
原创 C++中结构体和类的区别
类是OOP面向对象编程的基础,面向对象编程的好处就是让程序更能清晰的表达出其含义,类丰富了语言的自定义数据类型以及含义。另外,面向对象编程更容易系统的维护和扩展。因为类把相同的内容封装起来,一旦需要修改或者扩展,是比较聚焦的。 C++包括java等面向对象语言的编程,除了小程序或者小算法的内容可以不需要类,其他任何时候都可以通过类的定义和封装来完成程序的设计。 应该分语言来说: 在C中str...
2018-03-12 23:31:26
2268
原创 HandlerThread
先说下HandlerThread 是干嘛的:将looper转嫁到子线程(每创建一个handler都会为其匹配一个looper,默认looper属于主线程),拥有自己的消息队列,不会阻塞UI。说白了就是把消息发送到子线程的looper,后续handleMessage时不会阻塞主线程。借用网上的一个小实例:package com.app;import android.os.Bundle;import ...
2018-03-11 16:49:05
196
原创 Java类锁和对象锁
synchronized关键字事实上,synchronized修饰非静态方法、同步代码块的synchronized (this)用法和synchronized (非this对象)的用法锁的是对象,线程想要执行对应同步代码,需要获得对象锁。synchronized修饰非静态方法以及同步代码块的synchronized (类.class)用法锁的是类,线程想要执行对应同步代码,需要获得类锁。1、对象方...
2018-03-10 18:08:50
233
原创 设计模式总结之中介者模式
定义:用一个中介者对象封装一系列的对象交互,中介者使各个对象不需要显示地相互作用,从而使耦合松散,而且可以独立改变它们之间的交互。类型:行为类模式中介者模式主要是为了解决因交互对象较多而造成的耦合度过高,对象关系混乱的问题。例如:一个班级各个同学老师之间如果单独交流,则效率低下,关系复杂。而建立一个qq群,大家都通过qq群来交流,则耦合度将变得松散,qq群则起到中介作用。中介者模式设计到三个成员:...
2018-03-06 20:35:26
210
原创 C++虚函数
virtual 关键字修饰的函数被称之为虚函数,虚函数可以将实现延迟到子类,其目的就是为了动态多态。在用法上需要注意一下几点:1、其修饰的方法必须是成员方法,不可以是全局函数。2、不可以是静态方法,静态方法是从属于类的,用virtual修饰会编译出错。3、内联函数不能是虚函数,如果修饰了,inline特性则会消失。4、构造函数不能是虚函数,否则会编译出错。纯虚函数的实现原理: 在虚函数原...
2018-03-04 20:54:28
111
原创 Java数组和链表模拟队列
package com.example.datastruct;import java.util.Arrays;public class LinkQueue<T> { Node<T> head; Node<T> tail; int mSize; public boolean addNode(Node<T> node){ if (...
2018-03-04 19:12:28
176
原创 Java链表与数组实现栈
public class LinkStack<T> { Node<T> top; private int mSize; public LinkStack() { } boolean addNode(Node<T> node){ if(node == null){ return false; } if (top == ...
2018-03-03 11:48:18
189
原创 二分查找和快速排序
快排的中心思想,就是选取一个元素通过一趟排序将比这个元素大的换到前面,把这个元素小的换到后面。然后在继续进行排序。void sort(int datas[],int low,int high){ if(low >= high){ return; } int first = low; int last = high; int key = datas[first];
2018-02-04 21:32:35
450
原创 Android组件间传递消息
其实很多东西我们平时经常用,但是如果一旦被问到,很难立即想出来,或者都想出来。所以: 总结真的很重要!组件之间传递消息:1.我们可以使用Intent来传递intent 既可以直接传递简单数据,也可以用来传递序列化后的数据也可以通过bundle,放到intent来传递。intent 主要通过其过滤器来判断action来确定找到谁data,category来确定其使用环
2018-02-03 23:56:45
477
原创 adb常用命令
https://developer.android.com/studio/command-line/adb.html?hl=zh-cn#moveadb-devices 列出当前已经连接的模拟器或者设备。adb-s deviceId commandadb install -r xxx.apk adb uninstall xxx.apkadb push local remote 本地复制到远程ex: ...
2018-02-01 17:18:32
849
转载 adb启动Activity、activity、service以及发送broadcast的命令
原文链接:https://www.cnblogs.com/wytings/p/4093736.html一、启动activity:$ adb shell$ am start -n {包名}/{包名}.{活动名称}如:启动一个名叫MainActivity的活动# am start -n com.example.test/com.example.test.MainActivity 二、启动service...
2018-02-01 00:52:12
1328
转载 高质量C++编程(一)防止头文件重复引用
原文章:http://blog.csdn.net/neo_ustc/article/details/9108733【规则1-2-1】为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。 一、为什么会出现头文件被重复引用的问题 在一个CPP文件中,可以包含多个头文件,而头文件间又是可以相互引用的,这就导致一个CPP文件中可能
2017-09-24 22:22:36
519
原创 react-native运行时出现java.lang.RuntimeException: SDK location not found.
解决方法:在工程的根目录下的android文件下新建一个local.properties的文件,在文件中写入sdk.dir = /Users/jinwenfeng/Documents/android/android-sdk-macosx这里就是androidsdk的路径,至此问题一成功解决。
2016-11-26 22:47:43
3862
原创 onStartCommand返回值
1、 START_STICKY 在运行onStartCommand后service进程被kill后,那将保留在开始状态,但是不保留那些传入的intent。不久后service就会再次尝试重新创建,因为保留在开始状态,在创建 service后将保证调用onstartCommand。如果没有传递任何开始命令给service,那将获取到null的in
2016-11-13 22:03:50
529
原创 观察源码分析HashMap和Hashtable的区别
老生常谈的问题,有时候总是记不太清,希望今天好好总结一下。首先打开HashMap源码:public class HashMap extends AbstractMap implements Map, Cloneable, Serializable可以发现Hash继承的是AbstractMap类,并且分别实现了Map接口,Cloneable和序列化接口。再看HashT
2016-07-10 18:52:17
384
原创 设计模式总结之状态模式
状态模式:允许对象在内部状态改变时改变他的行为,对象看起来好像修改了它的类,属于对象的行为模式。状态模式如何选择:1.如果代码中存在大量的if-else情况语句。2.对象的行为跟随状态而改变。这个模式将状态封装成独立的类,并将动作委托到当前状态的对象,我们知道行为会随着内部状态的改变而改变。从客户的角度来看:如果你使用的对象能够完全改变他的行为,呢么你会觉得,这个对象是从别的类实例化而来的。然而,...
2016-06-03 16:44:58
348
转载 初探RxJava
首先到底什么是RxJava,RxJava是一个相应式编程框架,采用观察者模式,既然使用观察者模式,就一定少不了观察者和被观察者。RxJava 是一个开源项目,地址:https://github.com/ReactiveX/RxJava。还有一个RxAndroid,用于 Android 开发,添加了 Android 用的接口。地址:https://github.com/ReactiveX
2016-05-13 23:26:27
391
原创 设计模式总结之模板方法模式
模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。关于模板方法在我们生活中数不胜数,像我们做一些事情需要按照一定顺序来执行,像HeadFirst上的例子,星巴克冲泡咖啡的时候,先是把水煮沸,再是沸水冲泡咖啡,把咖啡倒进杯子,加糖喝牛奶,加其他东西(其他东西根据个人爱好可以加也可以不加)。public
2016-05-13 20:42:34
325
原创 设计模式总结之命令模式
命令模式:将请求封装成对象,以便使用不同的请求、队列、或者日志来参数化其他对象。命令模式也支持可撤销的操作。也就是说一个命令接收者可以绑定一系列请求,然后通过调用接受者的执行方法来执行就可以了。将一系命令通过一个命令的执行者来执行。这里模仿一个用遥控器对点灯开关的命令模式。package com.modedesign.command;/** * @author ctt: * @ver
2016-05-13 16:12:14
323
原创 设计模式总结之适配器模式
适配器模式是一种很常见的模式,做过安卓的想必对适配器再熟悉不过了,对于生活中的例子比如你需要在欧洲国家使用美国制造的笔记本电脑,就可能需要一个交流电的适配器,用来让美式插头也可以通过适配器得到电力。下面这段代码是我稍微模仿ListView的适配器模式,但实际上ListView的适配要比我的麻烦的多的多。。。public interface Adapter { public int get
2016-05-12 20:18:35
342
原创 Android之初探RecyclerView
RecyclerView的出现是为了取代ListView和GirdView,因为其可以实现ListView和GirdView的效果,也可以拓展很多效果,而且RecyclerView也做了很多优化。其使用方法是先通过设置布局管理器来确定布局,然后在通过适配器来将数据和试图进行绑定。这里我举个类似于瀑布流的小例子。项目地址:http://download.csdn.net/detail/l_v
2016-05-12 19:32:02
386
原创 设计模式总结之工厂模式
除了直接使用new之外,还有更多制造对象的方法。工厂模式可以使实例化的活动不公开进行,也可以解决因初始化而造成的耦合问题。工厂模式是一种常见的模式,在安卓中BitmapFactory也是使用的简单工厂,但其实现起来的难度却很高。工厂模式有以下几个优点:1.可以使代码清晰,有效的封装变化。将变化封装在工厂之中,调用者无需关注过程,只需要关注结果。2.对调用者屏蔽具体的产品类。3.解耦,产品实例化的过...
2016-05-11 20:09:59
343
原创 设计模式总结之单例模式
在项目中 有些时候有的对象只需要一个,比方说:线程池(ThreadPool),缓存(cache),对话框,处理偏好设置和注册表的对象,日志对象,充当打印机,显卡等设备对驱动程序对象。事实上这些类对象只能有一个实例,如果制造出多个实例就会导致许多问题产生。在安卓中很多系统服务也是使用的单例模式(譬如InputManager),如果不是单例模式其使用过程中必定会产生很多麻烦。下面我用代码介绍下单例模...
2016-05-11 15:48:57
329
Messenger通信
2018-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人