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)

    别废话,拿你代码给我看。
  • 相关阅读:
    9、Spring Boot 2.x 集成 Thymeleaf
    【专题】Spring Boot 2.x 面试题
    8、Spring Boot 2.x 服务器部署
    7、Spring Boot 2.x 集成 Redis
    6、Spring Boot 2.x 集成 MyBatis
    5、Spring Boot 2.x 启动原理解析
    4、Spring Boot 2.x 自动配置原理
    3、Spring Boot 2.x 核心技术
    2、Spring Boot 2.x 快速入门
    centOS下安装JDK1.8.60,glassfish4.1.1以及MySQL
  • 原文地址:https://www.cnblogs.com/lvxueyang/p/13707543.html
Copyright © 2011-2022 走看看