基础

Android AsyncTask

会有一股神秘感。 提交于 2019-12-01 21:57:50
简介: AsyncTask是android提供的轻量级的异步类。比Handler更轻量级一些,适用于简单的异步处理。 AsyncTask内部封装了Thread和Handler,简化Thread+Handler,可以让我们在后台进行计算并且把计算的结果及时更新到UI上。 AsyncTask并不是像多个线程那样完全并行执行的。 优缺点: 优点: 简单,快捷 过程可控 结构清晰,功能定义明确 对于多个后台任务时,简单,清晰 缺点: 在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来. 在单个后台异步处理时,显得代码过多,结构过于复杂(相对性) AsyncTask中维护着一个长度为128的线程池,同时可以执行5个工作线程,还有一个缓冲队列,当线程池中已有128个线程,缓冲队列已满时,如果此时向线程提交任务,将会抛出RejectedExecutionException。 解决:由一个控制线程来处理AsyncTask的调用判断线程池是否满了,如果满了则线程睡眠否则请求AsyncTask继续处理。 构造方法: AsyncTask直接继承于Object类,位置为android.os.AsyncTask。要使用AsyncTask工作我们要提供三个泛型参数,并重载几个方法(至少重载一个)。 AsyncTask定义了三种泛型类型 Params,Progress和Result。 Params

SQL 内链接Inner Join和外连接Outer Join

笑着哭i 提交于 2019-12-01 19:33:56
连接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定连接条件。WHERE和HAVING子句也可以包含搜索条件,以进一步筛选连接条件所选的行。 连接可分为以下几类: 内链接(Inner Join) 外连接(Outer Join) |--- 左连接(Left Join) |--- 右连接(Right Join) 全连接(Full Join) INNER JOIN 在表中存在至少一个匹配时,INNER JOIN 关键字返回行。 INNER JOIN 关键字语法 ? 1 2 3 4 SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name 注释:INNER JOIN 与 JOIN 是相同的。 一句话概括: inner join只取都不null的,相当于用from a,b where ?=?(连接是on ? = ?) 示例: SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName

memcached完全剖析–1. memcached的基础

风流意气都作罢 提交于 2019-12-01 15:54:16
版权声明 :可以任意转载,但转载时必须标明原作者charlee、原始链接 http://tech.idv2.com/2008/07/10/memcached-001/ 以及本声明。 memcached是什么? memcached 是以 LiveJournal 旗下 Danga Interactive 公司的 Brad Fitzpatric 为首开发的一款软件。现在已成为 mixi 、 hatena 、 Facebook 、 Vox 、LiveJournal等众多服务中 提高Web应用扩展性的重要因素。 许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。 但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、 网站显示延迟等重大影响。 这时就该memcached大显身手了。memcached是高性能的分布式内存缓存服务器。 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。 图1 一般情况下memcached的用途 memcached的特征 memcached作为高速运行的分布式缓存服务器,具有以下的特点。 协议简单 基于libevent的事件处理 内置内存存储方式 memcached不互相通信的分布式 协议简单

黑马程序员.bobo.DAY.1

Deadly 提交于 2019-12-01 06:55:00
Day-1 1. 基本常识 1) 软件开发 l 什么是软件? 软件:一系列按照特定顺序组织的计算机数据和指令的集合。 常见的软件: 系统软件: 如: DOS 、 windows 、 Linux 等 应用软件: 如:扫雷、迅雷, QQ 、 wps 等 l 什么是开发? 制作软件 2) 人机交互 l 软件的出现实现了人与计算机之间的更好的交互 l 交互方式: 图形化界面:这种方式简单直观,使用者易于接受,容易上手操作。 命令行方式:需要有一个控制台,输入特定的指令,让计算机完成一些操作,较为麻烦,需要记录一些命令。 3) 命令行方式 Dos 命令行,课程中常见的命令。 技巧:打开控制台最快捷方式, win 键 +R ,然后输入 ” cmd ” ,即可弹出控制台 dir: 列出当前目录下的文件以及文件夹 例子 md: 创建目录 rd: 删除目录 注意:删除的目录下里不为空,或者里面有文件,是无法删除的,所以要先 del ( 目录名字 ) ,然后输入“ y ”,成功删除里面的文件,然后再 rd 删除目录 技巧: echo: 创建有内容的本文 ( 输入内容 )>( 文件名 ).txt 例如 echo HelloBobo>bobo.txt cd: 进入指定目录 例: cd bobo cd..: 退回到上一级目录 例: cd.. 一层一层的返回 cd/: 退回到根目录 例子 del: 删除文件

IOS学习笔记——Objective-c基础(一)

本秂侑毒 提交于 2019-12-01 02:08:56
最近自学ios,ios的支持语言是Objective-c,所以要学习ios就需要先学习Objective-c语言。当掌握了Objective-c的基础知识之后,我们就可以入手学习iOS开发做出一些自己的应用。 我现在还是一名java程序员所以我就按照java的理解方式去理解Objective-c。最初先了解他的语法。下面 这段代码是我在学习过程中跟java对比的理解。都是一些最最基础的语法,随后会逐步深入。 代码段一:类的定义,类的定义放置在后缀为“.h”的文件中在java中是没有这一步的,这个跟c++很像。 //导入代码文件,相当于java中的导包 #import <Foundation/Foundation.h> @interface Song : NSObject { //声明属性,素性的声明需要放在花括号中 NSString * name; NSString * artist; int ID; } //相当于定义get,set方法 @property int ID; //重初始化方法,相当于java中的构造函数 //在重写初始化方法是也可以随意命名方法名,返回值为id类型就可以 -(id)init; //带参数的初始化方法 -(id)init:(NSString *)name artist:(NSString *)artist; //声明实例方法,get方法

Oracle基础知识

别说谁变了你拦得住时间么 提交于 2019-11-30 20:16:45
一、初始化参数文件 1、pfile文件的默认名称: init.ora spfile文件的默认名称: spfile.ora 2、初始化参数文件的优先级( oracle 默认的搜寻过程) spfile.ora---->spfile.ora--->init.ora 3、参数文件的存放路径: $ORACLE_HOME/dbs 4、修改初始化参数文件 create pfile from spfile; 或: create spfile=spfile_name from pfile=pfile_name; 5、判断当前使用的参数文件(使用的是spfile时将返回值,否则返回空) SQL>select * from v$parameter where name='spfile'; 或 SQL>show parameter spfile; 二、Oracle默认用户 用户名密码 SYSCHANGE_ON_INSTALL SYSTEMMANAGER 三、数据库的启动与关闭(startup/shutdown) 1、startup nomount /启动oracle实例 只读取初始化参数文件、启动后台进程、初始化系统全局区(SGA) 2、startup mount /启动oracle实例,并装载数据库到实例中 启动实例并装载数据库,但不打开数据库,oracle读取控制文件 3、startup [open]

Java多线程基础篇(01)

空扰寡人 提交于 2019-11-29 13:02:44
工作忙起来,竟然把博客都忘了,罪过罪过。 1.引言 几天我一直有在看多线程基础方面的东西。因为多线程是编程中避免不了的东西。因此学习多线程很有必要。这里就先简单介绍一下多线程的基础概念。后续有深入的学习研究。 多线程是Java中不可避免的一个重要主体。关注我的博友们,将与我一道展开对多线程的学习。然后,接下来的内容,是对JUC(java.util.concurrent)的研究。“基础篇”中只涉及Object的wait()、notify()等接口、Thread类中的接口和多线程锁机制。 2.线程基础 2.1 线程的概述 线程是一个程序的多个执行路径,执行调度的单位,依托于进程存在。线程不仅可以共享进程的内存,而且还拥有自己的栈空间,栈空间是建立线程时由系统分配的,主要用来保存线程内部所使用的数据。 2.2 为什么使用线程 在Java程序中使用多线程有许多原因,使用线程的一些原因是他们可以帮助: a.使响应更快 b.利用多个处理器系统 c.执行异步或后台处理:在不阻塞整个程序的情况下,执行阻塞io。 d.利用多个线程分解大任务。 2.3 什么情况下使用线程 使用线程是有代价的,如果程序时计算密集型且每一步都有依赖,那么使用线程反而导致效率下降,因为多个线程之间需要切换,还要负责维护锁,信号量等设施,对并行计算的计算密集型问题和i/o与计算可重叠的问世使用多线程,一般会达到显著的效果

JavaWeb开发基础

天涯浪子 提交于 2019-11-29 02:54:52
1、应用服务器 Java的应用服务器:Tomcat,JBoss,WebSphere,WebLogic,Resin。这里主要以Tomcat为主。 Tomcat的安装: 1.1、下载Tomcat( http://tomcat.apache.org/ ) 1.2、在环境变量中设置 CATALINA_HOME=Tomcat的路径 JAVA_HOME=Java路径 1.3、将Tomcat的bin路径添加到环境变量中。 1.4、启动Tomcat,在命令提示符中输入catalina.bat start (catalina start). 1.5、启动之后在浏览器中输入 http://localhost:8080 回车,如果显示Tomcat首页就表示安装成功。 2、Tomcat简介 Tomcat的目录结构 bin:Tomcat的可运行文件存储目录 conf:Tomcat的配置文件所在目录 webapps:Tomcat的项目目录 work:一些编译文件的目录 ·只要将相应的项目复制到webapps中就可以直接访问该项目 ·conf文件夹是一些配置文件所放置的文件夹 ·conf文件夹中的文件 server.xml:Tomcat的系统配置项目,在server.xml中可以完成对站点访问的配置 web.xml:Tomcat一些基于web的配置,web.xml中可以完成一些web的基本访问的配置

Android adt bundle 开发环境配置及第一个“Hello world”程序运行

僤鯓⒐⒋嵵緔 提交于 2019-11-28 19:40:45
最近在学习Android 顺便记录下学习过程当作复习吧,这是写的第一篇正式博客。 一、jdk环境配置 二、 android adt bundle 下载 三、 安装SDK 四、 模拟器及真机调试 五、 第一个程序 Hello world! 六、总结 一、jdk环境配置 jdk下载地址 选中“Accept License Agreement”之后才能下载,如下图: 下载之后 点击安装,一路next 之后配置环境变量 JAVA_HOME,找到jdk安装的路径,我的如下: 二、android adt bundle 下载 http://dl.google.com/android/adt/adt-bundle-windows-x86_64-20140702.zip 下载之后 直接解压就行,得到如下文件夹 进入“eclipse”文件夹,点击“eclipse.exe”即可进入eclipse开发界面 三、安装SDK 打开 eclipse之后 点击红色箭头所指按钮“Android SDK Manager” 进入SDK Manager 管理界面 选中需要安装的版本,我选择的的API 16,选择Install 之后就是漫长的等待.... 四、模拟器及真机调试 点击 Android Virtual Device Manager 新建一个模拟器,步骤参考以下图片进行, 将手机设置为调试模式 HTC

Git详解之二 Git基础(第一部分)

六月ゝ 毕业季﹏ 提交于 2019-11-27 12:31:12
Git 基础 读完本章你就能上手使用 Git 了。本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令。读完本章,你就能初始化一个新的代码仓库,做一些适当配置;开始或停止跟踪某些文件;暂存或提交某些更 新。我们还会展示如何让 Git 忽略某些文件,或是名称符合特定模式的文件;如何既快且容易地撤消犯下的小错误;如何浏览项目的更新历史,查看某两次更新之间的差异;以及如何从远程仓库 拉数据下来或者推数据上去。 2.1 取得项目的 Git 仓库 有两种取得 Git 项目仓库的方法。第一种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库。第二种是从已有的 Git 仓库克隆出一个新的镜像仓库来。 在工作目录中初始化新仓库 要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行: $ git init 初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。不过目前,仅仅是按照既有的结构框架初始化好了里边所有的文件和目录,但我们还没有开始跟踪管理项目中的任何一个文件。(在第九章我们会详细说明刚才创建的.git 目录中究竟有哪些文件,以及都起些什么作用。) 如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交: $