1. 注释可以在Java程序中起到文档标记的作用

类文档标记:

1)@version

2)@author

3)@param

4)@return

5)@exception

2. Java的字符占两个字节,是Unicode编码

3. 作用域——

Java不存在全局和局部作用域。

不重名:Java程序块不能将内部作用域声明的变量与其外部作用域声明的变量重名。

4. Java程序不可能在类外的全局区域有方法。

5. Java数组

定义:

int  arr[ ] = new int[10];

与数组相关的方法:

1)复制数组

System.arrycopy(...);

2)数组排序

Array.sort(arrayname);

6. Java的类

1)new语句的类名后要有一对圆括号

Man p1 = new Man();

类名后的句柄 p1,相当于C++的指针,引用一个Man的对象

2)对象的比较

操作符==时

两个变量所指内存地址相等的时候,才能返回true

3)this引用句柄

构造方法中可以通过this调用另一个构造方法

{... this(...,...,...);}

7.垃圾回收机制

数组和对象分配在堆上

数组和对象在没有引用变量指向它时才会变成垃圾,不能再被使用,但仍然占据着内存,在随后一个不确定的时间被垃圾回收器释放掉,这也是Java占内存的原因。

8.static关键字

注意:不能把任何方法体内的变量声明为静态(只能把类的成员声明为静态成员)

1)静态代码块

  1. class Code{
  2. {
  3. System.out.println("Code的构造块");
  4. }
  5.  
  6. static{
  7. System.out.println("Code的静态代码块");
  8. }
  9.  
  10. public Code(){
  11. System.out.println("Code的构造方法");
  12. }
  13. }

不包含在任何方法体中的,当类被载入时,自动执行静态代码块,且只被执行一次,经常用作初始化类中属性;

在Java中,一个类装入JVM中经过3个步骤:装载、链接和初始化。因此,静态代码块执行在构造函数之前。

2)main方法是静态的

这个main()方法的声明为:public static void main(String args[])。必须这么定义,这是Java的规范。

因此在main()方法中,不能直接访问该类中的非静态成员。

9.类的继承

Java的继承是单一继承关系,一个子类只能有一个父类

  1. class A
  2. {}
  3. class B extends A
  4. {}
  5. class C extends B

子类构造的时候,需要在构造函数中super(参数)构造父类。在子类有方法或变量与父类有冲突时,可以用super. 来加以区别。 

  1. class Student extends Person{
  2. public Student (String name, int age, String school) {
  3. super(name,age);
  4. this.school=school;
  5. }
  6. }

10.抽象类与接口 

1)必须用abstract 关键字来修饰抽象类;抽象方法也必须用abstract来修饰。

含有抽象方法的类必须被声明为抽象类,抽象类的子类必须覆盖所有的抽象方法后才能被实例化,否则这个子类还是抽象类。

2)接口interface——Java对C++多重继承的改进

接口是抽象方法和常量值的定义集合;

接口可以看作一种特殊的抽象类,只包含常量和方法的定义,而没有变量和方法的实现;

接口里的变量默认使用public static final标识的,因此,接口中定义的变量就是全局静态常量;

用implements关键字去实现一个接口中的所有或部分方法;

11. 对象的多态

Java中所有类都继承自Object类,Object是Java类层中最高层类

Object类中的getClass()、notify()、notifyAll()、wait()等方法不能被重写,因为这些方法被定义为final类型。

多态:

  1. >多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)
  2. >实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
  3. >多态的作用:消除类型之间的耦合关系。

多态存在的三个必要条件
1>、要有继承;
2>、要有重写;
3>、父类引用指向子类对象。

12. 包

package语句:Java中采用了“.”来分隔目录

  1. package name1.subname2;
  2.  
  3. public class classname
    {}

类会被打包进对应路径下的 classname.class文件

import语句

使用某个包里的类

import java.util.*;

13.Java类的访问控制

1)类只有两种访问控制:public和默认。默认修饰即class关键字前没有访问控制符的类,只能被同一包中的所有类访问。

2)带有public修饰符的类的类名必须与源文件名相同。只要在class之前,没有使用public修饰符,源文件的名称就可以是任意的。

jar文件包:某个java应用所需的class文件和其他文件的压缩包,习惯上称jar包。

14. final关键字

final关键字的含义?

final在Java中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误。

什么是final变量?

凡是对成员变量或者本地变量(在方法中的或者代码块中的变量称为本地变量)声明为final的都叫作final变量。final变量经常和static关键字一起使用,作为常量。下面是final变量的例子:

1
2
public static final String LOAN = "loan";
LOAN = new String("loan") //invalid compilation error

final变量是只读的。

什么是final方法?

final也可以声明方法。方法前面加上final关键字,代表这个方法不可以被子类的方法重写。如果你认为一个方法的功能已经足够完整了,子类中不需要改变的话,你可以声明此方法为final。final方法比非final方法要快,因为在编译的时候已经静态绑定了,不需要在运行时再动态绑定。下面是final方法的例子:

1
2
3
4
5
6
7
8
9
10
11
12
class PersonalLoan{
    public final String getName(){
        return "personal loan";
    }
}
 
class CheapPersonalLoan extends PersonalLoan{
    @Override
    public final String getName(){
        return "cheap personal loan"; //compilation error: overridden method is final
    }
}

什么是final类?

使用final来修饰的类叫作final类。final类通常功能是完整的,它们不能被继承。Java中有许多类是final的,譬如String, Interger以及其他包装类。下面是final类的实例:

1
2
3
4
5
6
7
    final class PersonalLoan{
 
    }
 
    class CheapPersonalLoan extends PersonalLoan{  //compilation error: cannot inherit from final class
 
}

final关键字的好处

下面总结了一些使用final关键字的好处

  1. final关键字提高了性能。JVM和Java应用都会缓存final变量。
  2. final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。
  3. 使用final关键字,JVM会对方法、变量及类进行优化。

不可变类

创建不可变类要使用final关键字。不可变类是指它的对象一旦被创建了就不能被更改了。String是不可变类的代表。不可变类有很多好处,譬如它们的对象是只读的,可以在多线程环境下安全的共享,不用额外的同步开销等等。

15.Java API

System与Runtime类

Java与C++语法的区别的更多相关文章

  1. php与java语法的区别

    php与java语法的区别 个人觉得在学习语言时,可以通过比较来进行学习.由于长时间写java代码,对java的基本语法还算熟悉,现在转学php,就php中基本语法与java基本语法差异进行比较. 1 ...

  2. 二、JAVA基础、语法

    第二节:JAVA基础.语法 1.修饰符.变量:    Java中主要有如下几种类型的变量    局部变量                                                 ...

  3. 7#Java基本语句语法

    Java基本语句语法https://github.com/DuGuQiuBai/Java/blob/master/day03/day03%E6%80%BB%E7%BB%93.txt 1:位运算符(了解 ...

  4. JSON语法与JavaScript语法的区别

    JSON是独立于语言存在的,在不同的编程语言中对这种数据类型的实现不同,例如在JavaScript中使用JavaScript对象对这种数据格式进行实现,那么在java中当然是用java对象实现. 描述 ...

  5. 第十八节:详解Java抽象类和接口的区别

    前言 对于面向对象编程来说,抽象是它的特征之一. 在Java中,实现抽象的机制分两种,一为抽象类,二为接口. 抽象类为abstract class,接口为Interface. 今天来学习一下Java中 ...

  6. Java抽象类和接口的区别(好长时间没看这种文章了)

    Java抽象类和接口的区别(好长时间没看这种文章了) abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的 ...

  7. Java-杂项: Java中Array和ArrayList区别

    ylbtech-Java-杂项: Java中Array和ArrayList区别 1.返回顶部 1. 1)精辟阐述:可以将 ArrayList想象成一种“会自动扩增容量的Array”. 2)Array( ...

  8. [转帖]java注解与注释注解区别

    https://baijiahao.baidu.com/s?id=1615942718081024481&wfr=spider&for=pc 还需要仔细看一下书的 书里面都有. jav ...

  9. 动静结合?Ruby 和 Java 的基础语法比较(入门篇)

    前言 这篇文章示例代码比较多, Java 程序员可以看到一些 Ruby 相关语法和使用,Ruby 程序员可以看看 Java 的基本语法和使用方法,本文比较长,将近万字左右,预计需要十几分钟,如果有耐心 ...

随机推荐

  1. Bugzilla使用规范

    登陆Bugzilla Bugzilla登陆地址: http://172.21.8.39:21500/manual/ 账号:XXX@sim.com 密码:123456 Bugzilla简介 Bugzil ...

  2. Java中多线程

    引 如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个 ...

  3. Linux运维学习笔记-iptables知识总结

  4. 怎么在windows7下搭建服务器

    怎么在windows7系统安装IIS 图文教程 http://jingyan.baidu.com/article/1e5468f92f6e05484961b703.html 以下本人为列:第一步:先按 ...

  5. CentOS7安装OpenStack(Rocky版)-05.安装一个nova计算节点实例

    上一篇文章分享了控制节点的nova计算服务的安装方法,在实际生产环境中,计算节点通常会安装一些单独的节点提供服务,本文分享单独的nova计算节点的安装方法 ----------------  完美的分 ...

  6. 一步步入门log4cpp

    前言 项目实现过程中,需要检查.查找或者调试程序bug等,此时程序日志则较为清晰地展现代码的运行过程.目前接触到的方法有打印消息到控制台,将重要信息输出到某个文件比如txt文件,或者直接使用日志库. ...

  7. Unity 3D的常用快捷键

    Unity中的常用快捷键 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Windows系统Unity3 ...

  8. 关于FormData及其用法

    XMLHttpRequest Level 2添加了一个新的接口FormData.利用FormData对象,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,我们还可以使用XMLHttp ...

  9. JQuery 基本知识,选择器,事件,DOM操作

    一.基本知识 Jquery是什么? 它就是一套JS方法包,jQuery是一个快速,小巧,功能丰富的JavaScript库.它使得HTML文档遍历和操作,事件处理,动画和Ajax更容易使用易于使用的AP ...

  10. Tarjan+缩点【强连通分量】【模板】

    #include<iostream> #include<cstring> #include<algorithm> #include<queue> #in ...