zoukankan      html  css  js  c++  java
  • java知识点1

    JAVA 程序

    public class HelloWorld {
        public static void main(String[] args) {
            System.out.println("Hello World");
        }
    }

    注:String args[] 与 String[] args 都可以执行,但推荐使用 String[] args,这样可以避免歧义和误读。

    运行以上实例,输出结果如下:

    $ javac HelloWorld.java
    $ java HelloWorld
    Hello World

    执行命令解析:
    以上我们使用了两个命令 javac 和 java。
    javac 后面跟着的是java文件的文件名,例如 HelloWorld.java。
    该命令用于将 java 源文件编译为 class 字节码文件,如: javac HelloWorld.java。
    运行javac命令后,如果成功编译没有错误的话,会出现一个 HelloWorld.class 的文件。
    java 后面跟着的是java文件中的类名,例如 HelloWorld 就是类名,如: java HelloWorld。
    注意:java命令后面不要加.class。
    拓展:

    • java:这个可执行程序其实就是JVM,运行Java程序,就是启动JVM,然后让JVM执行指定的编译后的代码;
    • javac:这是Java的编译器,它用于把Java源码文件(以.java后缀结尾)编译为Java字节码文件(以.class后缀结尾);
    • jar:用于把一组.class文件打包成一个.jar文件,便于发布;
    • javadoc:用于从Java源码中自动提取注释并生成文档;
    • jdb:Java调试器,用于开发阶段的运行调试。

    下面我们来解释一下程序:
    public static void main(String[] args) 是什么意思?

    • 这是 Java 程序的入口地址,Java 虚拟机运行程序的时候首先找的就是 main 方法。跟 C 语言里面的 main()函数的作用是一样的。只有有 main() 方法的 Java 程序才能够被 Java 虚拟机运行,可理解为规定的格式。
      对于里面的参数及修饰符:
      public:表示的这个程序的访问权限,表示的是任何的场合可以被引用,这样 Java 虚拟机就可以找到 main() 方法,从而来运行 javac 程序。
      static: 表明方法是静态的,不依赖类的对象的,是属于类的,在类加载的时候 main() 方法也随着加载到内存中去。
      void: main():方法是不需要返回值的。
      main:约定俗成,规定的。
      String[] args: 从控制台接收参数。

    拓展:
    String[] args 还有一种等价的写法: String… args
    前者为数组形式, 后者为可变参数形式。
    前者用得较多, 但是看到后者也应认识。
    基本语法
    一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。
    对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
    :类是一个模板,它描述一类对象的行为和状态。
    方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
    实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。

    编写 Java 程序时,应注意以下几点:
    大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
    类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
    方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
    源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
    主方法入口:所有的 Java 程序由 public static void main(String []args) 方法开始执行。

    Java 标识符
    Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
    关于 Java 标识符,有以下几点需要注意:

    • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
    • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
    • 关键字不能用作标识符
    • 标识符是大小写敏感的
    • 合法标识符举例:age、$salary、_value、__1_value
    • 非法标识符举例:123abc、-salary

    Java修饰符
    像其他语言一样,Java可以使用修饰符来修饰类中方法和属性。主要有两类修饰符:
    访问控制修饰符 : default, public , protected, private
    非访问控制修饰符 : final, abstract, static, synchronized

    Java 变量
    Java 中主要有如下几种类型的变量

    • 局部变量
    • 类变量(静态变量)
    • 成员变量(非静态变量)

    Java 数组
    数组是储存在堆上的对象,可以保存多个同类型变量。

    继承
    在 Java 中,一个类可以由其他类派生。如果你要创建一个类,而且已经存在一个类具有你所需要的属性或方法,那么你可以将新创建的类继承该类。
    利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类(super class),派生类称为子类(subclass)。

    接口
    在 Java 中,接口可理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。
    接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。
    Java注释

    // 你好单行注释
    
    /* 你  多行注释
    们
    好*/

    Java的八种基本类型:(按字节来分)

    boolean   布尔型   1个字节 8bit(8位)
    byte     字节类型   1个字节
    char     字符类型   2个字节
    short     短整型     2个字节
    int          整型        4个字节
    float      浮点型(单精度)4个字节
    long      长整型      8个字节
    double   双精度类型  8个字节

    Java中默认的整数类型是int,如果要定义为long ,则要在数值后加上L或者l默认的浮点型是双精度浮点,如果要定义float,则要在数值后面加上f或者F一个字节等于8位,1个字节等于256个数。2^8一个英文字母或者阿拉伯数字占一个字节一个汉字占2个字节

    数据类型的溢出
    在 Java 中,只有数字类型才能参与运算。但是每个数据类型都有他的取值范围。
    例如 byte 数据类型,它的取值范围为 -128 - 127 。
    当我们使用 byte b = 128; 时,肯定会报错。
    但是使用 byte b = 127+1; 并不会报错。
    而且运算的结果为 -128。
    我们可以向数据类型的取值范围看作是一个圆,每多一个数据向前移动一个,当数据达到最大值时,我们再加 1,可以就会变成最小值,这就是数据的溢出。
    解释:
    byte 取值范围Java 中,byte 占一个字节,取值范围为何是 -128-127(-2^7~ 2 ^7-1)
    计算机是用二进制来表示数据的,一个字节也就是 8 个比特位,其中最高位表示符号位(0 正 1 负)。故 byte 的取值范围为 1000 0000 到 0111 1111。
    在 Java 中,是采用补码来表示数据的。正数的补码和原码相同,负数的补码是在原码的基础上各位取反然后加 1。1000 000 是补码,减一然后按位取反得到其原码 1000 0000。(减一得 0111 1111,再按位取反得 1000 0000)因为是负数,所以最小的 byte 值为 -2^7=-128。
    0111 1111 的十进制为 2^7-1=127(等比序列求和)。
    byte 是一个字节,共有 2^8=256 种可能性,也就是 -128~127
    其他基本数据类型同理:
    char 没有负值,占两个字节,所以取值范围是 0~2^16-1(65535)

    别废话,拿你代码给我看。
  • 相关阅读:
    关于ArcGIS Server VS2010无法显示发布的地图服务
    NDK,动态链接库,JNI
    android开发中一些报错的解决方法
    查询死锁对象
    pb导入excel文件
    n_cst_ping在powerbuilder 11 中的变化,一面的程序可正常ping
    SQL拼音
    数据库优化
    android调用asp.net webservice,返回json结构
    iframe内部需要弹出浮层问题
  • 原文地址:https://www.cnblogs.com/lvxueyang/p/13707543.html
Copyright © 2011-2022 走看看