- 博客(53)
- 收藏
- 关注
原创 XML
XML1、什么是XMLXML 指可扩展标记语言(EXtensible Markup Language)XML 是一种标记语言,很类似 HTMLXML 的设计宗旨是传输数据,而非显示数据XML 标签没有被预定义。您需要自行定义标签XML 被设计为具有自我描述性XML 是 W3C 的推荐标准2、XML 仅仅是纯文本它仅仅是纯文本而
2016-05-24 20:09:46
333
转载 Serializable序列化
1、什么是序列化和反序列化Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。2、什么情况下需要序列化a)当你想把的内存中的对象保存到一个文件中或者数据库中时候;b)当你想用套接字在网络上传送对象的时候;c)当你想通过RMI传输对象的时候;3、如何实现序列化将需要序
2016-03-06 19:07:41
533
原创 Spring概念学习--面向切面AOP
零基础学习,真的是好痛苦,看到的术语都不认识我,只能一个个术语的理解了,讲的比较浅,方便我个人学习,也给大家一点参考。1、名词解释AOP:所谓AOP,即Aspect orientied program,面向方面的编程。面向方面:是指系统的各个模块中的都需要使用的一个功能,因为具有统一性,且指定特定的方面,比如记录日志,异常处理,事物处理,权限检查等,都是特定的功能,这些在
2016-01-31 17:41:46
456
原创 java环境部署
对于初学习java的人来说,首先面对的问题怎么样部署java的开发和运行环境,这样才可以慢慢学习java基础和实践操作。1、 java的开发和运行环境l JDK是Java Development Kit的缩写,即Java开发工具集。JDK是整个Java的核心,包括了Java运行环境(JRE)、Java开发工具和Java基础类库。l JRE是Java Runtime Environ
2016-01-16 16:28:08
699
原创 java内存管理
Java分配内存分为两种:栈内存和堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。在堆中产生了
2016-01-07 10:41:42
318
原创 java类型转换
java类型转换有两种方式:自动转换(隐式转换)和强制类型转换1、自动转换(隐式转换)自动转换需要满足两个条件,第一是两种类型彼此兼容,第二是目标类型的取值范围必须大于源类型2、强制类型转换不满足自动转换条件时,需要强制转换,这时需要注意转换中造成的数据的微小变化。
2015-12-16 11:07:37
322
原创 启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法!
这个问题一般是eclipse和JDK位数不一样,问他eclipse和JDK分别是多少位的,他也不知道,那么如何判断eclipse和JDK位数不一样了,如何解决这个问题?首先查看两个软件的位数,然后再卸载一个,安装和另外一个位数一样的软件。这个问题一般是eclipse和JDK位数不一样,那么如何判断eclipse和JDK位数不一样了,如何解决这个问题?首先查看两个软件的位数,然后再卸载一个,安装和另
2015-12-02 21:31:58
1954
原创 equals和==的区别
要区分两者的区别首先需要知道当前java的数据类型。1、数据类型区分基本数据类型:byte,short,char,int,long,float,double,boolean 复合数据类型:就是定义的类2、两者区分 对于基本类型,采用==号进行比较,比较的是基本类型的值,结果是boolean值。 对于复合类型,采用==号比较时,比较的是复合类型在内存中
2015-11-19 11:42:59
474
1
转载 JVM学习笔记
基本结构从Java平台的逻辑结构上来看,我们可以从下图来了解JVM:从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别对于JVM自身的物理结构,我们可以从下图鸟瞰一下:对于JVM的学习,在我看来这么几个部分最重要:Java代码编译和执行的整个过程JVM内存管理及垃圾回收机制下面将这两个部分进行详细学习
2015-11-04 11:14:53
307
原创 try-catch-finally学习
1、try…catch 将有可能抛异常的代码放到try语句中,那么当try语句中有异常出现时,catch语句会将异常捕捉到,但是一个try后面可以跟多个catch语句,可以针对于try抛出的不同异常,到对应的catch中处理,如果后面的没有准确对应的catch处理,异常就会跳到父类的异常catch中。记住一点,一个try-catch一次只能捕获一个异常。1.1 将预见可能引发异常的代码
2015-10-29 11:42:58
397
原创 OpenSSl 个人学习
1、OpenSSL介绍OpenSSL是套开放源代码的软件库包,实现了SSL与TLS协议。其主要库是以C语言所写成,实现了基本的加密功能。OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。OpenSSL采用C语言作为开发语言,这使得OpenSSL具有优秀的跨平台性能,这对于广大技术人员来
2014-12-16 22:10:20
1654
原创 linux grep命令
linux grep命令1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
2014-10-15 20:56:39
422
原创 String,StringBuffer和StringBuild 区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改
2014-10-14 09:33:33
938
转载 Java编码规范
编码规范对于开发人员来说是非常重要的,有以下几个原因:1.一个软件的生命周期中,80%的花费在于维护2.几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护3.编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码4.如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品5.为来自不同的项目组
2014-10-11 10:43:11
387
原创 函数参数压栈顺序
函数调用约定(Calling Convention) 函数调用约定不仅决定了发生函数调用时函数参数的入栈顺序,还决定了是由调用者函数还是被调用函数负责清除栈中的参数,还原堆栈。函数调用约定有很多方 式,除了常见的__cdecl,__fastcall和__stdcall之外,C++的编译器还支持thiscall方式,不少C/C++编译器还支持 naked call方式。这么多函数调用约定常常令许
2013-10-09 22:13:13
2336
原创 (转)关于strcpy函数的问题(程序员面试宝典P219)
一个关于strcpy函数的问题#include#includevoid main(){char s[]="123456789";char d[]="123";strcpy(d,s);printf("d=%s,\ns=%s",d,s);}执行结果:d=56789,s=123456789书上有关于这个的解答,说是因为当初分配的内存地址是连续内
2013-08-28 16:51:29
729
原创 c++ char *str和char str[]的区别
一、堆和栈的理论知识1、申请方式stack:由系统自动分配,例如声明在函数中的一个局部变量int b;系统自动在栈中为b开辟空间。heap:需要程序员自己申请,并指明大小,在C中用malloc函数:p1=(char*)malloc(10);在C++中用new运算符:p2=new char[10]。注意p1、p2本身是在栈中的。2、申请后系统的响应栈:只要栈的剩余空间大于所申请空
2013-08-20 21:13:11
908
原创 C++中的左值与右值
1. C++左值与右值概念变量和文字常量都有存储区,并且有相关的类型,区别在于变量是可寻址的;对于每个变量,都有2个值与其相关联:1>数据值,存储在某个内存地址中,也称右值(rvalue),右值是被读取的值(read value),文字常量和变量都可被用于右值。2>地址值,即存储数据值的那块内存地址,也称左值(lvalue),文字常量不能被用作左值。2.C++左值与右值的含
2013-07-19 10:45:53
537
原创 C++中const理解
一、首先介绍const引入1. C++有一个类型严格的编译系统,这使得C++程序的错误在编译阶段即可发现许多,从而使得出错率大为减少,因此,也成为了C++与C相比,有着突出优点的一个方面。2. C中很常见的预处理指令 #define VariableName VariableValue 可以很方便地进行值替代,这种值替代至少在三个方面优点突出: 一是避免了意义模糊的数字出现,使得
2013-07-18 20:19:16
505
原创 C++多态个人总结
多态指同一个实体同时具有多种形式。它是面向对象程序设计(OOD)的一个重要特征。如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的。简单点说:“一个接口,多种实现”,就是同一种事物表现出的多种形态。C++多态的实现:C++中的多态性具体体现在运行和编译两个方面。运行时多态是动态多态,其具体引用的对象在运行时才能确定。编译时多态是静态多态,在编译时就可以确定对象使用的
2013-07-02 16:42:11
621
原创 c++中重载、覆盖和隐藏概念的区别
1、重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual 关键字。示例1:#include class B
2013-07-02 16:35:43
532
原创 4个女人要过一座桥的问题
4个女人要过一座桥。她们都站在桥的某一边,要让她们在17分钟内全部通过这座桥 。这时是晚上。她们只有一个手电筒。最多只能让两个人同时过桥。不管是谁过桥,不管 是一个人还是两个人,必须要带着手电筒。手电筒必须要传来传去,不能扔过去。每个女 人过桥的速度不同,两个人的速度必须以较慢的那个人的速度过桥。 第一个女人:过桥需要1分钟; 第二个女人:过桥需要2分钟;
2013-05-22 14:15:10
1085
原创 拷贝构造函数的参数类型必须是引用(转)
在C++中, 构造函数,拷贝构造函数,析构函数和赋值函数(赋值运算符重载)是最基本不过的需要掌握的知识。那么 拷贝构造函数的参数为什么必须使用引用类型?原因: 如果拷贝构造函数中的参数不是一个引用,即形如CClass(const CClass c_class),那么就相当于采用了传值的方式(pass-by-value),而传值的方式会调用该类的拷贝构造函数,从而造成无穷递归地调
2013-05-13 09:29:19
717
原创 一些简单编程问题的集合(转)
c++ 两个字符串连接输入两个长度不超过100的字符串放入两个不同的字符数组中,而后将两个输入串连接起来(放入第一个字符数组中),并输出结果串以及各串的长度(但不能使用标准库函数strcat及strlen)。【分析提示】1、说明:char s1[202], s2[101];并从键盘读入两个字符串放入此二数组中。2、将s2字符串连接到s1字符串的“后面”(压着
2013-05-11 10:53:15
617
原创 C++拷贝构造函数(深拷贝,浅拷贝)(转载)
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include using namespace std;class CExample {private: int a;public: CExam
2013-05-11 10:51:47
395
原创 C++ 按位与运算符&、按位异或运算符^、按位或运算符|
1、 按位与运算符参加运算的两个数据,按二进制位进行“与”运算。运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;即:两位同时为“1”,结果才为“1”,否则为0;另,负数按补码形式参加按位与运算。“与运算”的特殊用途:(1)清零。如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。(2)取一个数中指定位方
2013-05-09 17:31:59
1542
原创 C语言深度剖析——个人笔记
1、const修饰的只读变量不能用来作为定义数组的维数,也不能放在 case关键字后面。2、#define ENG_PATH_3 E:\English\listen_to_this\listen\_to_this_3这里用了 4 个反斜杠,到底哪个是接续符?。注意:反斜杠作为接续符时,在本行其后面不能再有任何字符,空格都不行(前三个反斜杠后面都有字符,这一点是不满足作为连接符的
2013-05-08 10:01:58
756
原创 阿里巴巴笔试(3)——规律题+无语吐槽(转)
数字推理题主要有以下几种题型: 1.等差数列及其变式 例题:1,4,7,10,13,() A.14 B.15 C.16 D.17 答案为C。我们很容易从中发现相邻两个数字之间的差是一个常数3,所以括号中的数字应为16。等差数列是数字推理测验中排列数字的常见规律之一。 例题:3,4,6,9,(),18 A.11 B.12 C.13 D.14 答案为C。仔细观
2013-05-04 23:23:03
1608
转载 从海量数据中找出中位数
题目和基本思路都来源网上,本人加以整理。题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存)。关于中位数:数据排序后,位置在最中间的数值。即将数据分成两部分,一部分大于该数值,一部分小于该数值。中位数的位置:当样本数为奇数时,中位数=(N+
2013-05-04 16:39:43
2507
1
转载 C++:静态联编和动态联编
联编就是将模块或者函数合并在一起生成可执行代码的处理过程,同时对每个模块或者函数调用分配内存地址,并且对外部访问也分配正确的内存地址,它是计算机程序彼此关联的过程。按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编。静态联编是指在编译阶段就将函数实现和函数调用关联起来,因此静态联编也叫早绑定,在编译阶段就必须了解所有的函数或模块执行所需要检测的信息,它对函数的选择是基于
2013-05-04 15:13:26
781
转载 判断一个单向链表中是否有环
一段代码判断一个单向链表中是否有环。下面为链表中的结构体节点struct node{ int data; node *next;}*linklist,*s,*t;方法一: 最简单的思路就是,定义一个指针数组,初始化为空指针,从链表的头指针开始往后遍历,每次遇到一个指针就跟指针数组中的指针相比较,若没有找到相同的指针,说明
2013-05-04 12:33:14
757
转载 一道笔试题:假设在n进制下,下面的等式成立,n的值是(),567*456=150216.
假设在n进制下,下面的等式成立,n的值是(),567*456=150216.完全是考数学的题目:http://topic.csdn.net/u/20100319/14/ffd0920a-b256-48d8-8d86-da36a3bfab8d.html做不出来也就算了,实际上,IT公司好多这样子的题目(腾讯除外),难怪考出来,成绩很差都可以进面试。这道题是google和淘宝的笔试题目,没
2013-05-04 11:27:12
999
转载 5个钢珠离开凹轨的最短时间和最长时间
问题:在一个长为33厘米的光滑凹轨上,在第3厘米、第6厘米、第19厘米、第22厘米、第26厘米处各有一个钢珠,凹轨很细,不能同时通过两个钢珠,开始时,钢珠运动方向是任意的。两个钢珠相撞后,以相同速度反向运动。假设所有钢珠初始速度为每秒运动1厘米,那么所有钢珠离开凹轨的最短和最长时间是多少? 分析:5个钢珠的移动方向都有两种可能:向左或者向右。这样钢珠运动的组合就有2的5次方,也就是
2013-05-04 10:53:25
1283
1
原创 重载符的定义
大多数的重载操作符可以定义为普通非成员函数或类的成员函数。运算符重载的实现运算符的重载形式有两种:重载为类的成员函数和重载为类的友元函数。运算符重载为类的成员函数的语法形式如下: operator (){ ;}运算符重载为类的友元函数的语法形式如下:friend operator (){ ;}注意:a、作为类成员的重载函数,其形参看起来比操
2013-05-03 20:35:47
731
转载 C++ inline 函数
(一)inline函数(摘自C++ Primer的第三版)在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联。 inline int min(int first, int secend) {/****/}; inline 函数对编译器而言必须是可见的,以便它能够在调用点内展开该函数。与非inline函数不同的是,inline函
2013-05-03 17:04:55
711
转载 C++构造函数私有化
通常我们都将构造函数的声明置于public区段,假如我们将其放入private区段中会发生什么样的后果?没错,我也知道这将会使构造函数成为私有的,这意味着什么? 我们知道,当我们在程序中声明一个对象时,编译器为调用构造函数(如果有的话),而这个调用将通常是外部的,也就是说它不属于class对象本身的调用,假如构造函数是私有的,由于在class外部不允许访问私有成员,所以这将导致编译出
2013-05-03 15:35:53
945
转载 虚继承与虚基类的本质
虚继承和虚基类的定义是非常的简单的,同时也是非常容易判断一个继承是否是虚继承的,虽然这两个概念的定义是非常的简单明确的,但是在C++语言中虚继承作为一个比较生僻的但是又是绝对必要的组成部份而存在着,并且其行为和模型均表现出和一般的继承体系之间的巨大的差异(包括访问性能上的差异),现在我们就来彻底的从语言、模型、性能和应用等多个方面对虚继承和虚基类进行研究。 首先还是先给出
2013-05-03 14:04:40
606
转载 C++ 对象的内存布局
转载地址:http://blog.csdn.net/haoel/article/details/3081328对象的影响因素简而言之,我们一个类可能会有如下的影响因素: 1)成员变量2)虚函数(产生虚函数表)3)单一继承(只继承于一个类)4)多重继承(继承多个类)5)重复继承(继承的多个父类中其父类有相同的超类)6)虚拟继承(使用virtual方式继承,
2013-05-03 13:42:32
628
1
转载 C++ 虚函数表解析
转载地址:http://blog.csdn.net/haoel/article/details/1948051前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,
2013-05-03 13:36:21
453
转载 typedef void (*Fun) (void)
为便于理解,你可以这样解释: typedef void(* Fun)(void) Fun 类似于 typedef int INT Fun在声明以后,可以把它当作数据类型声明其他变量 Fun的确切意义是一个函数指针类型,该函数没有参数且无返回值 定义了一个int类型的变量i; 而这样 typedef INT int; 表示用户自己定义了一个整型数据类型I
2013-05-03 12:59:15
625
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人