每日学习笔记12.27.2013

今日线路图:Timer → HttpURLConnection → get/post → HTTP状态码
 
今日回顾:1.Timer
1.1 定义:是一个用来设置定时任务的类,常用于线程。
1.2 用法:Timer timer = new Timer; timer.schedule();
Timer接受一个TimeTask参数(Runnable接口的实现类,重写线程中run()方法来定制),来指定哪个任务定时执行;接下来,由schedule()方法完成私人定制,主要有两种参数列表:
  • void schedule(TimeTask task, Long delay);
  • void schedule(TimeTask task, Long delay, Long period);
delay仅表示任务第一次执行所等待的时间,设置为0即为立刻执行。period表示反复执行时两次任务之间的间隔。
2.HttpURLConnection
2.1 访问网络的方式:基于TCP协议的通信/基于HTTP协议的访问。前一种主要学socket的用法,代表软件有QQ等;后一种是安卓方向的学习重点。
2.2 URL(Uniform Resource Locator):统一资源定位器,是指向互联网资源的“指针”。资源可以是简单的文件,或者是数据库等更复杂的东西。基本格式:协议名://主机:端口/资源。
2.3 HttpURLConnection类的使用:①实例化一个URL对象。调用URL有参构造器,传入一个URL地址。②调用URL的openConnection()方法。生成的是一个URLConnection对象,需要向上转型为HttpURLConnection对象,才能调用后续方法。③调用HttpURLConnection的getResonpseCode()方法。获得客户端与服务器端的连接状态码,如404。④调用HttpURLConnection的getInputStream()方法。得到一个输入流InputStream。⑤通过标准的IO流操作,解析流操作,完成交互。
3.get/post
3.1 用于向网络提交用户的信息,如登录名,密码,Email等。置于HTML的表单(form)内,使用以如下格式:
<form method = "get或者post" action = "要接受页面的地址">
(插入文本框、密码框、单选框、多选框、下拉列表、文字域、图片域、隐藏域、提交按钮、重置按钮等)
</form>
3.2 两者的区别:get -提交方便,可不用表单,用户信息会暴露在地址里(?key=xxx&key=xxx...),地址长度有限制,超过会自动裁剪(get方法常见于百度搜索)。安全性差;post -提交必须使用表单,无输入信息大小限制。用户信息不会暴露,安全性高。
4.HTTP状态码
4.1 分类:1xx -临时响应;2xx -成功;3xx -重定向;4xx -请求错误;5xx -服务器错误。
4.2 常见的:200 -成功;400 -错误请求;401 -未授权;404 -未找到;500 -服务器内部错误;503 -服务不可用。
 
今日问答:1.什么是线程的不安全性和混乱性?
多线程采取抢占机制,所有线程共享资源。而线程的执行需要时间,会随机地不可控制地去覆盖全局变量的值,得不到需要的结果。
2.怎么保证线程安全?
使用关键字synchronized保证同一时刻只有一个线程执行被修饰代码。synchronized用来同步方法,性能低。synchronized用来同步代码块,把变化的与不变的分离开,更方便。
 
今日记忆:1.构造方法可以巧妙地让不同的类能够共享同一个对象。
 
今日随想:1.什么是分时机制?
原文地址:https://www.cnblogs.com/BinaryHB/p/3495415.html