- 博客(134)
- 收藏
- 关注
原创 final和static的区别
今天在学Android时,遇到final static int a=1 这样的语法,就想深入了解下final和static的区别,因为字面上两个都是最终静态的意思。statictatic是静态修饰关键字,可以修饰变量和程序块以及类方法:当你定义一个static的变量的时候jvm会将将其分配在内存堆上,所有程序对它的引用都会指向这一个地址而不会重新分配内存;修饰一个程序块的时候(也就是直
2015-11-06 23:45:54
764
转载 5大布局方式详解
Android中常用的5大布局方式有以下几种:线性布局(LinearLayout):按照垂直或者水平方向布局的组件。帧布局(FrameLayout):组件从屏幕左上方布局组件。表格布局(TableLayout):按照行列方式布局组件。相对布局(RelativeLayout):相对其它组件的布局方式。 绝对布局(AbsoluteLayout):按照绝对坐标来布局组件。 1. 线性布局
2015-11-04 23:51:56
753
转载 使用剪切板在Activity中传值
在Activity之间传递数据还可以利用一些技巧,不管windows还是Linux操作系统,都会支持一种叫剪切板的技术,也就是某一个程序将一些数据复制到剪切板上,然后其他的任何程序都可以从剪切板中获取数据,在Android系统中也存在此技术。 使用剪切板会用到,ClipboardManager对象,这个对用剪切板会用到,ClipboardManager象用来操作剪切板,但是没有提供publ
2015-10-28 23:56:10
876
转载 AndroidManifest.xml中为啥android:name的值前面要加上点号
activity 组件的 android:name 属性采用类名的简写方式,查看文档类名的简写格式为 ".ClassName", 但为什么里的android:anem="ApiDemos",而不是android:anem=".ApiDemos"呢? 而后面的所有Activity组件的android:name的值都是".ClassName"格式呢?google查询android:name属性值的
2015-10-23 00:14:08
2912
转载 AndroidManifest.xml文件解析
一、关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent
2015-10-23 00:10:10
420
原创 出现should use @string resource的原因
我在xml文件中定义了一个button标签<Button android:id="@+id/button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="wo de button">保存后旁边出现个小感
2015-10-20 23:19:07
11073
1
原创 R.layout是什么?
android.R.layout和R.layout是有区别的 :android.R.layout是Android SDK自带的布局文件 R.layout是自己在res目录下面写的布局android.表示安卓自带的东东。。。
2015-10-20 00:30:04
8089
转载 @+id/和android:id有什么区别?
Android中的组件需要用一个int类型的值来表示,这个值也就是组件标签中的id属性值。id属性只能接受资源类型的值,也就是必须以@开头的值,例如,@id/abc、@+id/xyz等。如果在@后面使用“+”,表示当修改完某个布局文件并保存后,系统会自动在R.java文件中生成相应的int类型变量。变量名就是“/”后面的值,例如,@+id/xyz会在R.java文件中生成int xyz = v
2015-10-16 23:05:23
567
原创 大表的索引问题
最新系统生产环境的性能发现有所下降,把sql提出来,发现是在程序备份的时候耗时明显增多(备份时是用insert select语句)。经过排查,执行计划是稳定的,而且select出来数据还是很快,所以初步定位为插入时性能有问题。看了下表的情况,表的数据达到9亿,再看了下索引情况:索引结构达到5层,叶子块达到400多万个数据块!这就是慢的原因所在。就好像一本书,如果书的页数越来越多,对应的目录也就越来
2015-02-08 21:55:41
690
转载 序列的性能问题
在RAC环境中,序列的Cache问题可能会对性能有着决定性的影响,缺省的序列Cache值为20,这对RAC环境远远不够。如果存在序列号使用的竞争,就可能在数据库中看到明显的队列等待:enq: SQ - contention在RAC情况下,可以将使用频繁的序列Cache值增加到10000,或者更高到50000,这些值在客户的环境中都有采用。这是RAC设置和RAC使用的基本常识,不
2014-12-11 21:39:13
1007
转载 Adaptive Cursor Sharing(ACS)
Adaptive Cursor Sharing(ACS)是又一个大胆而吸引人的11G新特性。说它大胆是因为它试图解决一个CBO最令人头疼的问题:数据倾斜(data skew)和绑定变量窥视导致SQL PLAN太差。说它吸引人是因为想知道Oracle采用何种神秘的算法让Oracle变得更加智能。 之所以在11GR2出来之后才开始研究,是因为这个new feture在11GR1时
2014-06-30 12:20:01
871
转载 如何固定执行计划
在遭遇执行计划不稳定或者执行计划错误的情况下,通过baseline来固定SQL执行计划以确保执行计划稳定性、提高性能。baseline是oracle 11G提供的稳固sql执行计划的功能,是spm功能的一部分。步骤如下:[html] view plaincopySQL> set linesize 1000 SQL> col in
2014-06-29 11:56:47
1970
转载 由 bind_mismatch 引起的 大量 version_count 问题
从AWR报告里发现一个SQL存在大量的version_count. SYS@xezf(qs-xezf-db1)> select sql_id,version_count from v$sqlarea where version_count> 500 order by 2 desc ; SQL_ID VERSION_COUNT------------- ------
2014-06-29 11:13:28
1153
原创 连接与会话
学oracle几年了,今天才真正弄明白连接与会话的区别,真实惭愧,以前一直以为没啥区别,今天自己总结下。1. 连接是物理层级的,是客户端与服务器之间一条具体的连接;会话则是逻辑层级的,可以理解是客户端与数据库实例间交流的基础2. 会话可以理解为一个plsql窗口,开启一个窗口也就是新建了一个会话;连接可以理解为就是一个工作于服务器上的进程(或线程)当客户端与服务器端用专用服务器模式连接
2014-03-27 21:51:39
1768
转载 oracle事务槽(二)
oracle数据块头部有个事务槽(ITL)。当多个事务槽同时修改数据块,而且,此时,pctfree(数据块空闲空间的比例)不足10%,则会出现ITL争用。这种现象容易发生在update和delete身上。因为,insert时,oracle会优先分散地插入其他空闲块。如: 看一下表a有多少个事务槽:[sql] sys@ORCL> select
2014-03-23 23:23:47
1152
转载 CR块
1、概述Cr块consistent read块也就是用来维护oracle的读一致性的数据块。当查询某些数据的时候,发现数据块的版本比我们要查询的新,例如session1执行了dml操作并没有提交,session2此时查找跟session1相关的dml操作的数据信息,此时查询的数据却是原来的数据信息。查询的过程会在undo段中查找该数据块的前映像后,然后把前映像和cu
2014-03-23 23:21:09
1336
转载 oracle事务槽
一、ITL描述:ITL(Interested Transaction List)是Oracle数据块内部的一个组成部分,位于数据块头(block header),itl由xid,uba,flag,lck和scn/fsc组成,用来记录该块所有发生的事务,一个itl可以看作是一条事务记录。当然,如果这个事务已经提交,那么这个itl的位置就可以被反复使用了,因为itl类似记录,所以,有的时候也叫
2014-03-23 22:08:41
1243
原创 为什么plsql developer长时间执行sql会通信中断(3)
这个题目我已经写过两篇文章了,每次都会有新的发现,今天也不例外。今天我在做测试资料导入的测试时,需要插入4亿的数据量,我在PLSQL用insert/*+append*/ into XXX select/*+parallel(t 16)*/ * from XXX 然后一次提交,因为我担心会失败,所以sql一边运行,我一边观察表空间,UNDO空间,temp空间是否足够,结果这些空间都是足够的,但是
2014-03-10 21:12:56
2530
转载 DBMS_JOB
DBMS_Job包含以下子过程: Broken()过程。 change()过程。 Interval()过程。 Isubmit()过程。 Next_Date()过程。 Remove()过程。 Run()过程。 Submit()过程。 User_Export()过程。 What()过程。1、Broken()过程更新一个已提交的工作的状
2014-03-09 23:16:07
822
原创 写视图应该要注意的问题
视图是我们开发过程中经常打交道的对象,不知道你在写视图时有没有犯过这样的错误:create or replace view test_view as select b.emp_no, b.salary from emp a,emp_salary b WHERE a.emp_no = b.emp_no(+)emp表中有个emp_no为123的员工,在emp
2014-03-09 22:52:39
1092
原创 追踪存储过程中报错行
开发的朋友经常遇到的问题是:程序在EXCEPTION的WHEN OTHERS 中报了错,这是很头疼的问题,尤其在程序包很大的时候。。这个时候就需要迫切的知道到底是哪里发生了异常,这里介绍一个很好用的方法,可以准确的定位到你存储过程哪行报了异常,这就是:dbms_utility.format_error_backtrace 举个例子1.新建程序包create or replace pack
2014-03-08 15:25:36
1950
原创 如何确定定时job正在运行
在判断oracle JOB是否在运行时,很多人第一时间会想到视图 dba_jobs_running ,不过这个视图有个缺陷,它只能显示当前实例上正在运行的JOB,单机环境当然没问题,如果是RAC环境,这个视图的查询结果就会不准确。。当然有个比较麻烦的办法,就是关联GV$SESSION 和 GV$SQL 去判断JOB是否在运行,不过这就要求你对执行的内容很熟悉,能够很快看的出SQL正是你JOB运行的
2014-03-08 13:27:49
2964
原创 oralce热块
oracle的热块问题一直是性能瓶颈的重要因素,下面我们来通过一个例子来了解下:1. 创建表CREATE TABLE test2 (ID NUMBER);2.插入一条记录INSERT INTO test2 (ID) VALUES(1);commit;3.查看表test2,看看需要多少一致读4.在另一个会话,做表的更新操作,并不提交BEGIN
2014-03-08 13:12:07
1912
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人