C++&JAVA异同
C++与Java异同
1、指针★★★★★
C C++中的指针,提供了很大的灵活性,但是灵活也带来了危险,对指针操作的不当容易造成内存泄露或是空悬指针等问题。
Java取消了指针。但实际上,java中声明的所有引用数据类型的名称,可以理解为就是一个指针。该名称存储在栈内存上,指向对内存上使用new开辟的空间。
如:
int[] array = new int[10]
整型数组名array在栈内存上,在堆内存上开辟了10*4字节的空间,用array指向该块内存。
可以把array理解为一个指针,里面存放的地址就是new出来的空间。
如:
class Person{
……
}
Person p = new Person() ;
对象名p开辟在栈内存,用new为对象在堆内存开辟空间,对象名p指向该堆内存。
但实际上呢,该名称并不像C++中的指针,特别是在进行参数传递的时候。
java已经声明:参数传递都是值传递。
但是当引用数据类型作为函数参数的时候,把一个已声明的对象p1传进来的时候,其实是产生了一个该对象的副本p2,这个p2指向p1,所以通过p2调用p1的成员时,可以完成修改,等函数调用结束,保留修改。如:
class Person{
public String name ;
public int age ;
public Person(String name ,int age){
this.name = name ;
this.age = age ;
}
}
public class Test{
public static void main(String[] args){
Person p = new Person("张三" , 10) ;
System.out.println("修改前-->姓名:"+ p.name+",年龄:"+p.age) ;
changePro(p) ; //对象p传进来,这时产生p的一个副本,假设是p1,它指向p。 &nbs
相关文档:
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
java中所有都是unicode的编码,恐怕大家都清楚,但是这具体是哪里的编码。在一台中文windows操作系统(GBK),或英文的linux操作系统下(ISO-8859-1)下,这些编码是如何转换的。JAVA中的String类的getBytes()方法和String类的指定编码方式的构造函数中的编码又是如何呢?
这里我不做深入解释,只是展示一下这些编码 ......
用java开发邮件接收程序需要用到javamail包,资源地址:http://java.sun.com/products/javamail/,最新版是 JavaMail 1.4.3 ,下载地址是:http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/javamail-1.4.3.zip?BundledLineItemUUID=gqFIBe.oRjUAAAEl1r4 ......
1、用静态工厂方法代替构造函数
优点:
与构造函数不同,静态工厂方法具有名字(表意好)。
每次被调用时,不要求非得创建一个新的对象。
可以返回一个原返回类型的子类型对象。
缺点:
类如果不含有公有的或受保护的构造函数,就不能被子类化。
它们于其他的静态方法没有任何区别(易混淆)
......
1.背景、形势
能够进行Web开发的编程语言和技术很多
(1) 动态解释语言
PHP; Perl; Python (Zope, Plone); Ruby (Ruby on Rails);
(2) 编译语言
Java; .net
Java Web开发远非一枝独秀:
除了受到来自.net 这个重量级对手的最大挑战之外,更受到Zope, Ruby on Rail 等新式轻骑兵的冲击(当然,也继续受到老式轻 ......