码迷,mamicode.com
首页 > 移动开发 > 详细

《Android面试宝典》学习笔记(第七章:网络和加密)

时间:2015-02-11 19:07:22      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:android   网络   加密   

创建Socket对象至少需要指定哪些信息?

IP和端口号:

Socket socket = new Socket("www.microsoft.com",80);


socket连接服务器及与服务器端交互的代码:

http://www.cnblogs.com/linzheng/archive/2011/01/23/1942328.html


哪些情况下socket会被关闭?

1:Socket.close方法;

2:InputStream和OutputStream有一个关闭;

3:程序退出时网络连接自动关闭;

4:Socket对象被设为null或被新的Socket对象释放后。


如何使用Socket.connect方法连接服务器?

Socket socket = new Socket();
socket.connect(new InetSocketAddress("192.168.18.100", 8080));

如何设置连接超时?

socket.connect(new InetSocketAddress("192.168.18.100", 8080), 2000);

Socket类的getter方法有哪些?

socket.getInetAddress().getHostName();
socket.getInetAddress().getPort();
socket.getInetAddress().getRemoteSocketAddress();
socket.getInetAddress().getLocalAddress();
socket.getInetAddress().getLocalPort();
socket.getInetAddress().getLocalSocketAddress();
socket.getInetAddress().getRemoteSocketAddress();

如何保证在Socket.close方法后将所有的数据发给服务器?

socket.setSoLinger(true, 30);

socket选项:

http://www.open-open.com/lib/view/open1412994697952.html


Socket异常处理?

http://www.educity.cn/java/505626.html


如何创建服务端socket?

ServerSocket serversocket = new ServerSocket(1234);


如何设置请求队列长度?

ServerSocket serversocket = new ServerSocket(1234,100);


同步/异步/阻塞和非阻塞I/O有什么区别?

同步:在发出一个功能调用时,在没有得到结果之前,该调用就不返回。

异步:当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。

阻塞:调用结果返回之前,当前线程会被挂起(线程进入非可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停运行)。函数只有在得到结果之后才会返回。

非阻塞:指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。


如何使用非阻塞I/O发送HTTP请求并返回信息?

http://jasonshieh.iteye.com/blog/927376


非阻塞I/O提供的缓冲区类有哪些?

ByteBuffer、ShortBuffer、IntBuffer、CharBuffer、FloatBuffer、DoubleBuffer、LongBuffer。


如何从缓冲区读取数据?
ByteBuffer.put(byte b);

ByteBuffer(int index, byte b);

ByteBuffer.put(byte[] src, int offset, int length);

byteBuffer.array获取缓冲区中的数据


如何标注缓冲区中的特殊位置?

使用ByteBuffer.mark方法。


如何使用WebView控件向前向后浏览历史页面?

webView.goForward();

webView.goBack();


如何在WebView控件中显示HTML页面?

webview.loadDataWithBaseURL();


Javascript是如何调用Java方法的?

通过异步完成,要使用Handler处理。


Android支持哪些访问HTTP的方式?

DefaultHttpClient和HttpURLConnection,都封装了Http请求。


如何通过HttpPost对象向服务端发送POST请求,并获取字符串返回值的Java代码?

http://jasonshieh.iteye.com/blog/927376


如何使用HTTP上传文件?

http://blog.csdn.net/wangpeng047/article/details/38303865


什么是WebService?Android是否可以调用WebService?

WebService就是一个应用程序向外界暴露出一个能通过Web进行调用的API,也就是说能用编程的方法通过Web来调用这个应用程序。

可以,但Android SDK本身并未提供调用WebService的API,需要使用第三方API,如KSOAP2。


什么是HTTPS?

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。

为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。


如何访问HTTPS资源?

http://blog.sina.com.cn/s/blog_6e4d9a9b0100wjt1.html


什么是对称加密?什么是非对称加密?
对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。


什么是不可逆加密算法?Android支持哪几种不可逆加密算法?

不可逆加密算法指数据经过加密后,不能还原成原来的数据。Android支持的有MD5、SHA、HMAC等。





《Android面试宝典》学习笔记(第七章:网络和加密)

标签:android   网络   加密   

原文地址:http://6103630.blog.51cto.com/6093630/1613611

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!