原理
文章平均质量分 85
lilie008
这个作者很懒,什么都没留下…
展开
-
SSL
浅谈基于SSL的Socket通信 客户端认证服务器,即判断当前客户端连接的服务器是否可信 当客户使用SSL向站点服务器发送请求时,服务器向客户端发送一个证书,客户使用已安装的证书,验证服务器身份,然后检查IP地址(主机名)与客户端连接的主机是否匹配。客户生成可以用来对话的私钥(称为会话密钥),然后用服务者的公钥对它进行加密并将它发送到服务者。服务者用自己的私钥转载 2014-05-20 18:02:49 · 534 阅读 · 0 评论 -
java的几种同步方法
1 wait方法: 该方法属于Object的方法,wait方法的作用是使得当前调用wait方法所在部分(代码块)的线程停止执行,并释放当前获得的调用wait所在的代码块的锁,并在其他线程调用notify或者notifyAll方法时恢复到竞争锁状态(一旦获得锁就恢复执行)。 调用wait方法需要注意几点: 第一点:wait被调用的时候必须在拥有转载 2014-08-10 12:32:44 · 387 阅读 · 0 评论 -
引用及传值的解析
在Java中的引用类型,是指除了基本的变量类型之外的所有类型,所有的类型在内存中都会分配一定的存储空间(形参在使用的时候也会分配存储空间,方法调用完成之后,这块存储空间自动消失), 基本的变量类型只有一块存储空间(分配在stack中), 而引用类型有两块存储空间(一块在stack中,一块在heap中), 方法形参的值传递(引用)是指形参和传进来的参数指向同一个值的内存(heap)中;java是转载 2014-08-14 11:34:13 · 371 阅读 · 0 评论 -
堆和栈
在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以及在网上看帖遇到的朋友中有好多也说不清堆栈,所以我想有必要给大家分享一下我对堆栈的看法,有说的不对的地方请朋友们不吝赐教转载 2014-08-18 21:05:05 · 336 阅读 · 0 评论 -
throw和throws有何不同?如何使用
这两者虽然看起来只有一个s的区别,但是作用完全不一样/////java处理异常方式///////////////////////////////在java代码中如果发生异常的话,jvm会抛出异常对象,导致程序代码中断,这个时候jvm在做的操作就是:创建异常对象,然后抛出,比如:int i= 1;int j = 0;int res = 0;res = i/j;//除0错误System转载 2014-12-16 10:57:21 · 613 阅读 · 0 评论 -
new一个类对象和使用类名创建一个对象有什么区别?LinkList和ArrayList的区别
存储空间上不同。 new出来的在堆上 直接定义的在栈上 .用法似乎高手都喜欢用new,因为堆的内存大嘛,我喜欢用栈,方便点,不用指来指去,还要回收内存.栈在递归可能会遇到溢出,因为内存有限制.而且new出来的可以用很多动态重载的特性.转载 2014-12-16 11:11:26 · 947 阅读 · 0 评论 -
serialVersionUID JAVA的序列化机制
serialVersionUID适用于JAVA的序列化机制。简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常,即是InvalidCastEx转载 2015-01-19 11:37:18 · 482 阅读 · 0 评论 -
二维码的生成细节和原理
二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下。供好学的人一同学习之。关于QR Code Specification,可参转载 2015-02-16 10:17:37 · 419 阅读 · 0 评论 -
myeclipse的web项目转为eclipse项目相关问题
首先将项目转为动态web项目,如下:然后修改web文件夹名称,myeclipse为WebRoot,eclipse为WebContent这样工程就转好了。正常情况下一切OK,但是有时候因web项目所使用的lib包和jdk版本关系会导致一些问题:使用myeclipse自带Tomcat运行项目可以运行,但发布到浏览器却无法访问,同时eclipse也无法访问。本人遇到的问题是使用w原创 2015-03-03 13:46:01 · 477 阅读 · 0 评论 -
left join,right join,inner join,outer join的用法
通俗的讲: join 和 left outer join 的区别" title="left join 和 left outer join 的区别" style="margin:0px; padding:0px; border:0px; list-style:none"> A left join B 的连接的记录数与A表的记录数同 join 和 left oute转载 2015-04-14 16:56:30 · 527 阅读 · 0 评论 -
GitHub Android 开源项目
Android开源项目分类汇总目前包括:Android开源项目第一篇——个性化控件(View)篇 包括 ListView、 ActionBar、 Menu、 ViewPager、 Gallery、 GridView、 ImageView、 ProgressBar、 TextView、 ScrollView、 TimeView、 TipView、 FlipView、 Colo转载 2015-06-24 12:04:34 · 1058 阅读 · 0 评论 -
初探Git
CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,下面简单介绍一下分布式的系统和其优势点。集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。集中转载 2015-06-30 16:49:01 · 408 阅读 · 0 评论 -
使用GitHub
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:$ ssh-keygen -t rsa -C "youremail@example.com"rsa是一种密码算法,还有一种是dsa转载 2015-07-01 15:03:58 · 387 阅读 · 0 评论 -
Git的分支管理
在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能转载 2015-07-01 17:14:35 · 1042 阅读 · 0 评论 -
Android Studio 生成.so文件及 Android.mk文件解析
在NDK开发中生成.SO文件在app路径的build.gradle 的defaultconfig中添加ndk{ moduleName "MyJni" //设置库(so)文件名称 ldLibs "log", "z", "m" //添加系统库 abiFilters "armeabi", "armeabi-v7a", "x86" //生成3中类的.so文件}转载 2015-07-06 18:39:45 · 5329 阅读 · 0 评论 -
C关于内存分配的错误解析
GetMemory 改错试题4:void GetMemory( char *p ){ p = (char *) malloc( 100 );}void Test( void ){ char *str = NULL; GetMemory( str ); strcpy( str, "hello world" ); printf( st转载 2014-08-07 21:04:57 · 420 阅读 · 0 评论 -
Linux Makefile
目的: 基本掌握了 make 的用法,能在Linux系统上编程。环境: Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。准备: 准备三个文件:file1.c, file2.c, file2.h file1.c: #include转载 2014-08-07 11:27:22 · 314 阅读 · 0 评论 -
开源(veiw)
一、ListViewandroid-pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新ListView、ViewPager、WevView、ExpandableListView、GridView、(Horizontal)ScrollView、Fragment上下左右拉动刷新,比下面johannilsson那个只支持ListView的强大的多。并且他转载 2014-05-21 12:25:29 · 616 阅读 · 0 评论 -
URL与URI区别
URL英文:Uniform Resource Locator中文:统一资源定位符URI英文:Uniform Resource Identifier中文:统一资源标识符看完这些,其实还是不太明白两者的区别!我也一样,然后上网查找相关资料,依然不是很明白!不过,这个问题今天终于解决了,还是要感谢伟大的【韩顺平】老师!看完这张图之后,有木有感觉一图胜千言!原创 2014-06-03 11:53:15 · 468 阅读 · 0 评论 -
HTTPS的SSL双向认证
以下文章都是整合了好多网上的好多朋友的优秀资源,才写出来的。具体参考过谁的,我也记不清楚了。关于怎么生成https双向的证书,地址在这里:http://www.blogjava.net/stevenjohn/archive/2012/08/22/385989.html 应该正常来说,按照这个教程做的话是没有任何问题的,但是也有些朋友出过问题,主要问题是在,把证书导入到浏览器里面的时候出的,转载 2014-06-17 16:17:21 · 500 阅读 · 0 评论 -
设计模式之Singleton
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。转载 2014-07-03 16:29:46 · 328 阅读 · 0 评论 -
100阶层算法
// 还记得10进制的乘法么?// 567// * 5// -------// 2835// 用编程语言表示出来就是 // 当前的int a[4] ={0, 5, 6, 7}// 然后从最低位开始用5去乘以每一位,少于10的部分就是这// 个位新的值超过10的部分就是进位,加入他的前一位的结果// 那么从最低位开始a[0]*5转载 2014-07-15 15:48:21 · 1536 阅读 · 0 评论 -
String,StringBuffer与StringBuilder的区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常翻译 2014-07-31 11:29:03 · 270 阅读 · 0 评论 -
BigDecimal.setScale()方法
BigDecimal.setScale()方法用于格式化小数点setScale(1)表示保留一位小数,默认用四舍五入方式 setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3 setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4 setScale(1,BigDecimal.ROUND_H转载 2014-07-31 15:45:13 · 4161 阅读 · 0 评论 -
android:layout_weight的含义
首先声明只有在Linearlayout中,该属性才有效。之所以android:layout_weight会引起争议,是因为在设置该属性的同时,设置android:layout_width为wrap_content和match_parent会造成两种截然相反的效果。如下所示:[html] view plaincopyprint?LinearLa转载 2014-08-05 12:34:46 · 388 阅读 · 0 评论 -
TCP/IP协议
物理层:数据链路层:网络层:传输层:yingy原创 2014-08-05 15:31:40 · 321 阅读 · 0 评论 -
JAVA和C++的区别
JAVA和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者,而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,摒弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。Java和c转载 2014-08-05 18:12:20 · 356 阅读 · 0 评论 -
TCP/IP三次握手 四次挥手
TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urge转载 2014-08-06 13:44:42 · 366 阅读 · 0 评论 -
socket通信基本流程
Tcp通信基本流程:服务器端 客户端1.创建socket 1.创建socket2.bind()转载 2014-08-06 14:48:46 · 343 阅读 · 0 评论 -
工厂模式
工厂模式定义:实例化对象,用工厂方法代替new操作.转载 2014-08-06 14:57:22 · 306 阅读 · 0 评论 -
Java死锁和volatile
Java线程死锁是一个经典的多线程问题,因为不同的线程都在等待那些根本不可能被释放的锁,从而导致所有的工作都无法完成。假设有两个线程,分别代表两个饥饿的人,他们必须共享刀叉并轮流吃饭。他们都需要获得两个锁:共享刀和共享叉的锁。转载 2014-08-06 17:51:59 · 662 阅读 · 0 评论 -
abstract class和interface的剖析
理解抽象类 abstract class和interface在Java语言中都是用来进行抽象类(本文 中的抽象类并非从abstract class翻译而来,它表示的是一个抽象体,而abstract class为Java语言中用于定义抽象类的一种方法, 请读者注意区分)定义的,那么什么是抽象类,使用抽象类能为我们带来什么好处呢? 在 面向对象的概念中,我们知道所有的对象都是通过类转载 2014-08-06 18:26:27 · 343 阅读 · 0 评论 -
Android 屏幕适配相关解决方案
什么是屏幕尺寸、屏幕分辨率、屏幕像素密度? 什么是dp、dip、dpi、sp、px?他们之间的关系是什么? 什么是mdpi、hdpi、xdpi、xxdpi?如何计算和区分?在下面的内容中我们将介绍这些概念。屏幕尺寸屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米比如常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等转载 2015-07-08 17:47:11 · 1117 阅读 · 0 评论