• 从C++转向Java的第一课


    序:计算机语言的学习,最快捷的方法是从一种语言映射到另一种语言。Java和C++作为最通用的面相对象高级语言,不论从语法或者编程上都极具相似性和可效仿行,这里的可效仿包括——语法理解可效仿和编程规范可效仿。本篇将针对Java语言,作重点牵引。

    Java开发环境配置

    1 安装JDK

    版本:jdk1.6.0_27 

    配置用户变量:

    a.新建 JAVA_HOME

        C:Program Files (x86)Javajdk1.6.0_27 (JDK的安装路径)

    b.新建 PATH

        %JAVA_HOME%in;%JAVA_HOME%jrein

    c.新建 CLASSPATH

         .;%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar

    配置完成后,cmd 运行java命令看是否成功。

    2 安装eclipse

    版本:eclipse-jee-juno-win32

    解压到安装路径即可。

    再谈封装

    封装,是面相对象最基本的概念,其意义在于保证某些数据不被外界干扰。C++中也是如此——类。特别要注意的是精准地定义数据的访问权限(public,private,protect)。但是在java中,有一个比类要高大的概念——包。我是这么区分的,类解决了数据对象和操作方法的抽象,而包封装了业务逻辑。类对于java来说,显得更重要,因为java程序的入口就是类,main函数存在类中。

    继承和多态

    这两个概念基本上和C++是雷同的。

    程序的区别

    这是两种语言的最大区别:C++是编译型语言,而java是解释型语言。

    Javac编译器将.java文件编译成example.class文件,这个文件中包含了程序的字节码,而字节码中包含的是java解释程序将要执行的指令码。所以.class是不能运行的,必须用java解释器去解释。比如java example。

    为什么java程序的文件名必须和其public类同名呢?

    当java程序被编译后,每个单独的类都被放入自己的.class文件中,运行java解释器实际上是指定想要运行的类的名字,他会自动搜索到包含该名字且带有.class的文件。如果不同名,那将无法找到。

    另外,java编译器能编译通过没有main函数的类,但是解释器必须有main函数。

    数据类型

    Java比C++更加严谨,对数据类型有更高要求,比如java不能讲float赋值给int。不兼容的类型必须作强制转换。

    Java的布尔类型为boolean,值为true或者false。

    Java不能嵌套声明同一个变量,而这在c++中是允许的。

    int x = 1;

    {

    int x = 2;

    }

    Java数组运用稍有不同,java的数组需要动态分配。

    int month[];

    month = new int[12]; // 分配了12个元素,每个元素被初始化为0。

    或者

    int[] month = new int[12];

    Java提供数组边界检测,而这点在C++中是不具备的。如果越界,将爆出如下异常:

    java.lang.ArrayIndexOutOfBoundsException

    java中没有sizeof函数,数据类型在所有的机器上长度相同。

    字符串

    字符串在C++中是一种类型,而在java中,它已经不是一种类型,而是一个对象。这点在很多web语言中都是如此,比如JavaScript中,连数组也是一种对象!

    最大的区别

    Java没有指针概念!为什么呢?为了小应用程序图片防火墙。

    eclipse编码快捷排版

    快捷方式:Ctrl+Shift+F

    java标签运用原则

    (1) 一般的continue 会退回最内层循环的开头(顶部),并继续执行。

    (2) 带标签的continue 会到达标签的位置,并重新进入紧接在那个标签后面的循环。

    (3) 一般的break 会中断并跳出当前循环。

    (4) 带标签的break 会中断并跳出标签所指的循环。

    再谈this

    指向本类对象

    再谈static

    静态方法就是没有this的方法。在“静态方法”的内部不能调用“非静态方法”3,反过来倒是可以的。而且你可以在没有创建任何对象的前提下,仅仅通过类本身来调用静态方法。这实际上正是静态方法存在的主要原因。它很象是C语言中的全局函数。Java中禁止使用全局函数,但你在类中置入静态方法就可以访问其它静态方法和静态字段。

    类的静态变量

    类的静态变量是该类所有对象共用的同一个成员变量。

    类的静态方法

    静态方法是使用公共内存空间的,就是说所有对象都可以直接引用,不需要创建对象再使用该方法。 

    资源释放

    1. 对象可能不被回收。

    2. 垃圾回收并不等于“析构”。

    3.垃圾回收只与内存有关。

    final

    java中的final修饰词类似于c++中的const变量。

    函数

    随机数函数

    import java.util.*;

    int i = rand.nextInt(100); // 取100以内的随即整数

    在Math.random()的输出中包括了0.0,用数学语言,输出值范围是[0,1)

    比较函数==和equals()的区别

    equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
    ==比较的是2个对象的地址,而equals比较的是2个对象的内容。

    implements接口实现

    implements是一个类实现一个接口用的关键字,他是用来实现接口中定义的抽象方法。比如:people是一个接口,他里面有say这个方法。
    public interface people()
    {
       public say();
    }
    但是接口没有方法体。
    只能通过一个具体的类去实现其中的方法体。
    比如chinese这个类,就实现了people这个接口。
     public class chinese implements peopel{
       public say()
       {System.out.println("你好!");}
    }

    包——java新概念

    包——程序库单元

    import packagename;

    比如java发布的utility程序库

    import java.util.*;

    这样就可以使用该包下的所有类

    请注意,Java 包的命名规则全部使用小写字母,包括中间的字也是如此。

    声明一个包的语句如下

    package mypackage;

    之后,要使用该包的类,必须先import该包。

    你在创建自己的包时,将会发现 package 语句必须是文件中的第一行非注释程序代码。

    如果A和B包中都有class1这个类名,则使用时,需带前缀

    A.class1 obj = new A.class1();

    有了包的概念,则我们可以定制自己的程序库了。

    再谈访问权限

    public, protected 和private

    不同点:

    c++可以延续之前的权限设置,而java必须在每一处定义的地方加上权限声明。

    三个权限的使用方法和c++中的基本雷同。

     

    转自:http://www.cnblogs.com/viviman/archive/2013/01/09/2853150.html

  • 相关阅读:
    深浅复制
    iOS 和 H5 页面交互(WKWebview 和 UIWebview cookie 设置)
    iPhone 启动页尺寸
    AVAssetDownloadURLSession 简述
    iOS性能优化
    测试用例编写
    flutter_boot android和flutter源码阅读记录
    com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
    android sdk tools里找不到draw9patch.bat 如何制作.9.png 格式图片
    排球比赛计分系统
  • 原文地址:https://www.cnblogs.com/hnfxs/p/5772548.html
Copyright © 2020-2023  润新知