infinite-war'sBLOG
CARD
Mitchell
issue, func, flow, std, solve
30 | 15 | 22
SKIN
SETTINGS
Night Shift
Disable Canvas
简体中文
中文
|
English
|
日本語
PAGE CONTENT
java 语法基础 (一)
2021-12-04
2021-12-04
1.4k
10 min.

# 语法基础

CSDN:https://blog.csdn.net/INFINITE_WAR/article/details/121714143

注:主要记录Java有而C++没有的特点

# 1.注释

单行多行跟C++无区别

文档注释:

/**
*@(注释标题1) 具体内容
*@(注释标题2) 具体内容
*/

# 2.关键字

在这里插入图片描述

java可以用中文命名标识符

# 3.数据类型

跟C++一样,java也是强类型语言

# 3.1基本类型

整数类型 含义
byte 占1个字节:-128~127
short 占2个字节:-32768~32767
int 占4个字节:-2147483648~2147483647
long 占8个字 节: -9223372036854775808~9223372036854775807

没有long long类型

int n1=10;
long n2=10L;    //加个L来标定10是long类型,否则报错

int i1=10;   //十进制
int i2=010;  //八进制0
int i3=0x10; //十六进制0x

int x=10_00_00    //打印x时下划线不会被输出。这种方法主要是为了更清楚地看一个大数字
浮点类型 含义
float 占4个字节
double 占8个字节
long f1=1.1F;     //加个F来标定1.1是float类型,否则报错
double f2=1.1;
字符类型 含义
char 2个字节, Unicode编码(U0000~UFFFF)
布尔类型 含义
boolean(不是bool) 占一位。只有true、false两个值

# 3.2引用类型

类、 接口、数组

# 4.类型转换

在这里插入图片描述

(类型)变量名     //强制转换   高-->低

long a=1000000000;
int b=10;
long x=a*b;   //x会输出10000000000,b在计算过程中会自动向上转换
//如果声明的是int a,那么a*b不会产生类型转换,计算结果会溢出,x会获得溢出值

注:1.不能对boolean进行转换。

​ 2.不能把对象类型转换位不相关的类型。

​ 3.在把高容量类型(如long)转换到低容量类型(如int)的时候要执行强制转换。反之会执行自动转换。

​ 4.转换的时候可能存在内存溢出或精度问题。

# 5.变量

实例变量若不初始化,一般默认值都是类似0,0.0,null,false的形式

类变量:用static修饰

public class Demo{
    static double salary=2500;
    double age=25;
    
    public static void main(String[] args){
        Demo demo=new Demo();
        System.out.print(demo.age); //实例变量必须通过对象调用
        System.out.print(salary);   //类变量不用通过对象调用
    }
}

# 常量

java的常量用final修饰

# 变量命名规范

  1. 所有变量、方法、类名:见名知意
  2. 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母用大写 monthCommonBonus
  3. 局部变量:首字母小写和驼峰原则
  4. 常量:大写字母和下划线:MAX_VALUE
  5. 类名:首字母大写和驼峰原则:Man,LinkList
  6. 方法名:首字母小写和驼峰原则

# 6.运算符

java多了一个instanceof,其他跟C++一样

instance的作用是测试它左边的对象是否是它右边的类的实例,返回boolean 的数据类型。

boolean result = object instanceof class
public static void main(String[] args) {
   Object testObject = new ArrayList();
      displayObjectClass(testObject);
   }
   public static void displayObjectClass(Object o) {
      if (o instanceof Vector)
      System.out.println("对象是 java.util.Vector 类的实例");
      else if (o instanceof ArrayList)
      System.out.println("对象是 java.util.ArrayList 类的实例");
      else
      System.out.println("对象是 " + o.getClass() + " 类的实例");
   }
}
//输出为"对象是 java.util.ArrayList 类的实例"

对象若是 类(或直接子类、间接子类,也可以说是同一继承树) 的对象 那么instanceof会返回true。

null用instanceof跟任何类型比较时都是false。

//一个特例
int a=10,b=10;
System.out.print(""+a+b);   //输出20
System.out.print(a+b+"");   //输出1010
//从左往右看来判断"+"号是字符串连接还是算数加法

更多数学运算可以调用Math类

# 7.包机制

# package

类似于C++的namespace。也可以看成文件夹。可以避免命名冲突

在这里插入图片描述

package  pkg1[.pkg2[.pkg3...]]

在这里插入图片描述

类a放在目录Mitchell.tools下,因此编写类a的时候必须在开头加上一句

package Mitchell.tools;

编辑类HelloWorld,必须在开头加上一句

package Mitchell;

# import导包

import语句必须放在package语句下面

import package1[.package2].(classname | *);    //*代表相关包下的所有类

# 8.JavaDoc

目的:生成自己的API文档

# 基本内容

可用参数 含义
@author 作者名
@version 版本号
@since 指明需要最早使用的jdk版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况

在这里插入图片描述 按目录方式打开文件 在这里插入图片描述当前文件目录 在这里插入图片描述

# 生成文档的方法

# 方法1 命令行

在这里插入图片描述

# 方法2 idea内置工具

在这里插入图片描述

在这里插入图片描述

# 效果

在这里插入图片描述 网页效果在这里插入图片描述

The post above ended Thanks for your reading
Come on! Write some comments, and your suggestions will improve the quality of my creative!
FRIEND ME
QQ
WeChat
Post Author: Mitchell
Post Link: /
Copyright Notice: All articles/posts in this website are licensed under BY-NC-SA unless stating additionally.
Enable Read Mode
COMMENTS
DEFAULT