一、Java线程与进程的区别及多线程的使用。
1、定义,
进程:是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,包括产生、发展和消亡。
线程:是比进程更小的执行单位。一个进程在其执行过程中可以产生多个线程。
2、区别:
每个进程都有一段专用的内存区域,而线程之间则可以共享相同的内存单元,并利用共享单元实现数据交换、实时通信与必要的同步操作等。多线程即为在操作系统每次分时给java程序一个时间片的CPU时间内,若干个独立线程之间的切换。
3、Java实现多线程:
(1)两种方法:
1)定义新类,继承Thread类。
2)定义新类,实现Runable接口。
以上两种都必须重写run()方法。
(2)使用start()方法启动线程。
(3)使用sleep(int millsecond)来使自己放弃cpu资源,休眠一段时间。
(4)使用synchronized关键字来修饰将要被多个线程使用的方法,进而达到线程的同步。
二、反射。
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
具体实现。如:
三、android中的一些快捷命令和单位。
1、shift+alt +X 复写。
2、ctrl+D 删除
3、Ctrl+ shift +f 使代码变整齐。
4、alt + ? 实现快速选择,减少代码量。
5、 Ctrl+ ! 导入包
6、sp:文字单位。
7、px像素。
8、dp 如button宽高等。
四、android的相对布局。
RelativeLayout(相对布局),相对布局的子控件可以根据它们所设置的参照控件迚行布局。参照控件可以是父控件,也可以是其它子控件,但是被参照的控
件必需要在参照他的控件之前定义。
一些基本属性:
1)第一类:属性值为true或false
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 贴紧父元素的下边缘
android:layout_alignParentLeft 贴紧父元素的左边缘
android:layout_alignParentRight 贴紧父元素的右边缘
android:layout_alignParentTop 贴紧父元素的上边缘
android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物
2) 第二类:属性值必须为id的引用名“@id/id-name”
android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边
android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐
3) 第三类:属性值为具体的像素值,如30dip,40px
android:layout_marginBottom 离某元素底边缘的距离
android:layout_marginLeft 离某元素左边缘的距离
android:layout_marginRight 离某元素右边缘的距离
android:layout_marginTop 离某元素上边缘的距离
五、线性布局。
LinearLayout 线性布局有两种,分别是水平线性布局和垂直线性布局,LinearLayout属性中Android:orientation为设置线性布局当其="vertical"时,为 垂直线性布局,当其="horizontal"时,为水平线性布局,不管是水平还是垂直线性布局一行(列)只能放置一个控件。
1)线性布局与权重:
//权重和父容器orientation有关
horizontal 指水平方向权重 android:layout_width
vertical 指垂直方向权重 android:layout_height
Layout_weight是线性布局,也就是LinearLayout里面用到的,下面通过实验来看这个Layout_weight的特性。
1.当控件的属性android:layout_width="fill_parent"时
这里Button1的Layout_weight=1,Buttong2的Layout_weight=2,运行效果为:
Button1占了2/3,Button2占了1/3。
得出结论:在layout_width设置为fill_parent的时候,layout_weight代表的是你的控件要优先尽可能的大,但尽可能大是有限度的,即fill_parent.
2.当控件的属性android:layout_width="wrap_content"时,布局文件如下:
Button1的weight设置为1,Button2的weight设置为2,但是效果与fill_parent的效果截然相反。运行效果为:
在layout_width设置为wrap_content的时候,layout_weight代表的是你的控件要优先尽可能的小,但这个小是有限度的,即wrap_content
常见控件的使用。