Jdqm Blog

正直、善良、脚踏实地

0%

I. 线程

线程在Android系统中扮演者一个很重要的角色,从用途上来说,可以分为主线程和子线程,主线程一般用来处理界面与用户的交互,而子线程则往往用来执行一些耗时操作,例如I/O操作和网络访问,在Android3.0之后网络访问必须放到子线程中执行,否则会抛异常(NetworkOnMainThreadException),这样做的目的也是为了防止用户在主线程中做耗时操作,这样很容易引起ANR。在Android系统中还有一些扮演线程的角色:AsyncTask、IntentService和HandlerThread,虽然它们都有别于传统的线程,但是它们的本质仍然是传统的线程。

Read more »

PS:本文中数据库表请参考 ![上一篇文章][http://blog.shengyang.me/2017/03/24/SQL单表查询/]

I.连接查询

定义
前一篇中提到的查询都是针对单个表的。若一个查询涉及到两个以上的表,则称之为连接查询。连接查询是关系型数据库中的主要查询,包括等值连接查询、自然连接查询、非等值连接查询、自身连接查询、外连接查询和复合条件连接查询等。

1、等值与非等值连接查询

一般格式
[表名1.]<列名1> <比较运算符> [表名2.]<列名2>

其主要运算符有:=、>、<、>=、<=、!=(或<>)等;

当比较运算符为=时,称为等值连接,其他的运算符称为非等值连接。

1
2
3
4
5

-- 查询每个学生及其选修课程的情况
select student.*, sc.*
from student, sc
where student.Sno=sc.Sno;
Read more »

I.导语

数据库查询是数据库操作的核心,SQL提供select语句进行查询,其一般的格式为:

1
2
3
4
5
select [all | distinct] <目标列表达式> [,<目标列表达式>] ...
from <表名或试图名> [,<表名或试图名>] ...
[where <条件表达式>]
[group by<列名1> [having <条件表达式>]]
[order by<列名2> [ASC | DESC]];
Read more »

消息机制主要包含三个元素:Handler、MessageQueue、Looper

工作原理

Hander被创建后,通过Handler的post方法将一个Runable投递到Handler内部的Looper中去处理,或者通过Handler的send方法发送一个消息到Handler内部的Looper中处理,其中post方法最终也是通过send方法实现的。具体的过程是:当Handler的send方法被调用发出一个消息,MessageQueue就会将这个消息插入消息队列中,Looper发现有新的消息(MessageQueue的next方法),就会处理这个消息。最终这个消息的Runable或者Handler的handleMessage方法就会被调用。Looper是运行在创建Handler的线程中,这样一来Handler中的业务逻辑就会切换到创建Handler的线程中。

Read more »

一、Activity的生命周期

1、正常的生命周期

  • onCreate():

    表示Activity正在被创建,是生命周期中的第一个方法,可以在这个方法中做一些初始化工作,如调用setContentView()去加载布局资源,初始化Activity所需的数据,当然如果加载的数据比较多或者比较耗时的操作建议采用异步加载的方式,加快界面的出现,待异步加载完成再去设置view的属性。

Read more »

1、三角形面积

如【图1】所示。图中的所有小方格面积都是1。
那么,图中的三角形面积应该是多少呢?

请填写三角形的面积。不要填写任何多余内容或说明性文字。

第一题图片

这题为不规则图形求面积的问题,通常的解题思路是在不规则图形中寻找规则图形:
①整体法:整体视为一个规则图形,减去局部的规则图形
②局部法:将不规则图形分解为多个规则图形求解
所有方格为1,说明每个方格的长度为1。
88-(84+64+82)/2=28

答案:28

Read more »