Android_自我总结(三)之Java学习笔记

1.小技巧:idNumber+""-->可以将idNumber这个int值转换为string类型变量。

2.重写toString()方法:
 @Override
    public String toString() {
        return "NewsList{" +
                "news_id=" + news_id +
                ", title='" + title + '\'' +
                ", intro='" + intro + '\'' +
                ", cover='" + cover + '\'' +
                ", source='" + source + '\'' +
                ", datetime='" + datetime + '\'' +
                ", view_num=" + view_num +
                ", agree_num=" + agree_num +
                ", comment_num=" + comment_num +

                '}';

3.handler
主线程: handler  handler=new Handler(){
          public void hanleMessage(Message msg){
        //取出消息中的数据       
      Bitmap bitmap=(Bitmap)msg.obj;
        iv.setImageBitmap(bitmap);
}
};
工作线程:   //创建一个消息   Message  msg=new Message();  msg.obj=bitmap;

      bitmap就是需要传递给主线程的对象。通过msg来封装,handler来传递。

*发送msg的方式之一:

handler.post(new Runnable() {

//run里面是一种主线程需要执行的一段代码.

public void run() {

         dialog.dismiss();

         Toast.makeText(MainActivity.this, "", Toast.LENGTH_SHORT).show();

}

});

总结:handler-消息的发送者和处理者,handler在创建是必须关联到一个线程.在一个线程中创建一个消息队列,就会有一个looper,将handler和looper关联。默认关联创建它时,所在的线程.

post和sendMessage的区别:

当调用别人写的new handler()方法时,如果想重写消息处理方法时,要用到post()方法。因为别人已经将handlermessage()

写好了,你无法更改,只能重写runnable()方法.

4.AsyncTask-异步任务-线程间通信很好用.

*作用封装了消息线程通信,创建了handler,message,自动发送Message.

*2个方法:doInbackground--创建工作线程

onPostExcutor-工作线程完成后,由主线程执行的一段代码.

*异步任务的三个参数:

class DownLoad extends AsyncTask<Void  //后台任务参数类型-比如string, Void.执行后台任务时,发布信息的数据类型.会包装

msg发给主线程,, Result> //  运算结果的数据类型

* doInBackground:(创建+封装+发送:消息)

异步任务启动后,会新建线程,在线程内执行此方法,结果会返回一个运算结果,结果会被包装成msg,发到主线程.

* onPostExecute:(处理消息)

AsyncTask内创建的handler对象处理消息时,会从msg取出后台结果,并调用onpost方法。

5.Socket

1>java.net.ServerSocket

*在服务器端,选择一个端口,在这个端口等待客户端发起连接(被动等待).

步骤:

*1-socket通道:当用户发起连接,才创建通道.

ServerSocket ss = new ServerSocket(8000);

备注:相当于在server打开一张门

ss.accept();

备注:监听这张门的动向,等待,当客户端发起连接,就创建一个socket通道。

2>java.net.Socket

*在客户端,选择一个服务器和他的端口,向其发送连接。

步骤:

1. Socket s = new Socket("localhost",8000);

2.创建输入流和输出流

3.向服务器输出数据-while(true)

服务器端:

*ss.accept: 端口等待连接,阻塞代码

*in.readLine();阻塞代码

*一个accept只能保证和一个客户端连接,加上上面2个方法都是阻塞方法,为了能够保证多个客户端能同时连接一个Server,需要创建线程来实现.

实现方式:   while(true){

Socket n = ss.accept();

WorkThread t=new WorkThread(n);

t.start();

}

* accept()--等待客户端发起连接,此时并未创建socket通道,

当用户发起连接时,会立即创建socket,返回的socket类型对象,表示建立成功的通道.     

6.插入和冒泡

*插入排序: 从第2个数开始,取出每一个数跟它前面的所有数比较大小,如果小就交换位置,循环到最后。需要用到2层循环来实现这个过程 。

*冒泡排序: 2层循环:外层i0开始,内层j从最后一个数开始,从后面向前面走,相邻之间的2个数比较,如果后一数比前面数小,交换位置。外层循环一次结束后,最小的数会排在第1位,第2次循环结束后,第2小的数会排在第2位。  



















  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值