您的位置:首页 > 编程语言 > C语言/C++

java学习要点(除C++特性外需要注意的特性)

2016-09-16 22:01 288 查看
最近要使用java对android进行开发,这也是第一次使用java,刚开始接触的时候也就是简单看一下语法,然后直接上手,这样经过两天后觉的有必要把java比较特殊的知识点总结出来,加深自己的记忆,不然每次用都网上搜索是比较费时间的一个过程。

当然,如果会C++,C,那么在学习的过程中,难免比较这两者这件的特性,以及比较这两者之间的不同。有些问题只是“知道,或者不知道”的问题,并不是一个难点。所以这些基础的知识点还是有必要列出来,方便记忆。

本文也是初学java的理解,很多描述可能不太准确,还不够深入理解,仅仅是看着java的语言特性自己的感觉,希望在以后的使用中有更加深刻的理解。

所以今天就把一些基本点列出来(基本上事和c/c++对比)。

一,基本语法特点

java关键字

static,表示变量或者方法属于类,不用实例化对象也能使用(和c++的差不多)。
extends,类的继承(C++中继承用冒号“:”)
implement,实现接口方法(而申明是接口的关键字为interface)
final,可以简单的额理解为c中的const关键字。
super,只基类;
this指针,和c++中的this指针一样,为方法中的第一个(影藏)参数,表示当前类的指针。
abstract class,抽象类。
继承+重写=多态(涉及override和super的灵活应用,和c++中virtual函数很相似)

类和对象

实例化:使用关键字new来创建一个对象。
一个源文件中只能有一个public类,一个源文件可以有多个非public类,在同一源文件中,不能给不同的类不同的包声明。
这里补充以下java的main函数。
java的函数入口定义为:

public static void main(String[] args)


为什么是上面的形式呢(C/C++则是讲main函数独立出来,并非写入类中的一个方法)?

通常情况下, 如果要运行一个类的方法,必须首先实例化出来这个类的一个对象,然后通过"对象名.方法名()"的方式来运行方法,但是因为main是程序的入口,这时候还没有实例化对象,因此将main方法声明为static的,这样这个方法就可以直接通过“类名.方法名()”的方式来调用。

java这么做的好处是啥呢?java每个类都可以有一个main函数,而C++却只有一个。我觉得应该是:在启动程序时,可以指定不同类的main函数来达到启动不同的代码。

java的string和stringBuffer:

String:是对象不是原始类型.

           为不可变对象,一旦被创建,就不能修改它的值.

           对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.

           String 是final类,即不能被继承.

 

StringBuffer:
           是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象

           它只能通过构造函数来建立,

          StringBuffer sb = new StringBuffer();

          对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.通过它的append方法向其赋值.

          sb.append("hello");

java容器(java数据结构)

Collection
├List       接口
│├LinkedList       链表
│├ArrayList         顺序结构动态数组类
│└Vector         向量
│ └Stack       栈
└Set
Map
├Hashtable
├HashMap
└WeakHashMap List接口

ArrayList和HashMap是异步的,Vector和HashTable是同步的,所以Vector和HashTable是线程安全的,而ArrayList和HashMap并不是线程安全的。因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于ArrayList和HashMap。

java接口(interface)

接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。

接口无法被实例化,但是可以被实现

接口与类相似点:

一个接口可以有多个方法。
接口文件保存在.java结尾的文件中,文件名使用接口名。
接口的字节码文件保存在.class结尾的文件中。
接口相应的字节码文件必须在与包名称相匹配的目录结构中。

接口与类的区别:
接口不能用于实例化对象。
接口没有构造方法。
接口中所有的方法必须是抽象方法。
接口不能包含成员变量,除了static和final变量。
接口不是被类继承了,而是要被类实现。
接口支持多重继承。

java包:类似c++中的命名空间name space
java也有泛型模板(JDK>5时才有的)

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: