欢迎光临
我们一直在努力

Java基础语法2

变量

顾名思义,变量 就是可以变化的量。Java是一种强类型语言,每个变量都必须 声明其类型。Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和 作用域。

type varName [=value] [{,varName[=value]}];
// 数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型变量,但不建议。

注意事项:

  • 每个变量都有类型,类型可以是 基本类型,也可以是 引用类型。
  • 变量名必须是 合法的标识符。
  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。

变量作用域

  • 类变量
  • 实例变量
  • 局部变量

public class Demo5 {
// 类变量 static:从属于类
static double salary = 2500;

// 实例变量:从属于对象,类的里面,方法的外面
// 如果其不自行初始化,则为这个类型的默认值 int:0 float(double):0.0
// 布尔值:默认是false
// 除了基本类型,其余的默认值都是null
String name;
int age;

public static void main(String[] args){
int a, b, c;
String name = "Ming";
char x = 'M';
double d = 1.23;

// 属性:变量
// 局部变量:必须声明和初始化值
int i = 10;
System.out.println(i);

// 变量类型 变量名称 = new 类名称();
Demo5 demo5 = new Demo5();
System.out.println(demo5.name); // null
System.out.println(demo5.age); // 0

// 类变量 static:从属于类
System.out.println(salary); // 不需要创建对象,可以直接在此类中使用
}

// 其他方法
public void add(){
// System.out.println(i); // i是局部变量,在其他方法无法直接使用
}
}

常量

常量(Constant):初始化后不能在改变值!不会变动的值。

所谓常量可以理解为一种特殊的变量,它的值一旦被设定后,在程序运行过程中 不允许被改变。

// 类变量 static:从属于类

常量名一般使用 大写字符。

public class Demo6 {
// 修饰符不存在先后顺序
static final double PI = 3.14; // 命名大写
final static double PI_ = 3.14;

public static void main(String[] args) {
System.out.println(PI);
System.out.println(PI_);
}
}

变量的命名规划

  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Main,Demo,GoodMan
  • 方法名:首字母小写和驼峰原则:add(), addSalary()

运算符

Java语言支持如下运算符:

在这里插入图片描述

二元运算符

package Base;

public class Demo7 {
public static void main(String[] args) {
// 二元运算符(+, -, *, /, %)
int a = 10;
int b = 20;
int yu = 3;

System.out.println(a+b); // 30
System.out.println(ab); // -10
System.out.println(a*b); // 200
System.out.println(a/b); // 0, int自动取整
System.out.println(a/(double)b); // 0.5
System.out.println(a%yu); // 取余,1

System.out.println("===================================");

long c = 123123213123213L;
int d = 123;
short e = 10;
byte f = 8;

System.out.println(c+d+e+f); // 123123213123354
System.out.println(getType(c+d+e+f)); // class java.lang.Long

System.out.println(d+e+f); // 141
System.out.println(getType(d+e+f)); // class java.lang.Integer

System.out.println(e+f); // 18
System.out.println(getType(e+f)); // class java.lang.Integer

System.out.println("===================================");

// 关系运算符返回的结果:true/false boolean
// 常和条件、循环语句结合使用
int num1 = 10;
int num2 = 20;

System.out.println(num1>num2); // false
System.out.println(num1<num2); // true
System.out.println(num1==num2); // false
System.out.println(num1!=num2); // true
}

public static String getType(Object a){
return a.getClass().toString();
}
}

注:这是 Java 算术运算的 隐式类型提升规则:byte、short、char 这类长度小于 int 的整数类型,参与算术运算时会自动先提升为 int 再计算,因此即使只有 short 和 byte 相加,二者运算前都已转为 int,最终结果就是 int 类型;若表达式中出现范围更大的 long,所有操作数会进一步提升为 long,结果也对应为 long 类型,这是 Java 语言的硬性规定,底层对应 JVM 字节码仅提供 int 及以上整型运算指令的设计。

一元运算符

public class Demo8 {
public static void main(String[] args) {
// ++ — 自加 自减 一元运算符
int a = 3;

int b = a++; // 先赋值,再自加

System.out.println(a); // 4

int c = ++a; // 先自加,再赋值

System.out.println(a); // 5
System.out.println(b); // 3
System.out.println(c); // 5

// 幂运算 2^3 2*2*2=8 很多运算,我们使用一些工具类来操作,后续会学习;
System.out.println(Math.pow(2, 3)); // 8.0
System.out.println(Math.pow(3, 2)); // 9.0
}
}

逻辑运算符和位运算符

public class Demo9 {
public static void main(String[] args) {
// 逻辑运算符 与(&&, and) 或(||, or) 非(!, 取反)
boolean a = true;
boolean b = false;

System.out.println("a && b:" + (a && b)); // false, 1 1->1
System.out.println("a || b:" + (a || b)); // true, 0 0->0
System.out.println("!(a && b):" + (!(a && b))); // true 1->0 0->1

// 短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);

System.out.println(d); // false
System.out.println(c); // 5, &&前面为false,不执行后面的语句

// 位运算符
/*
A = 0011 1100
B = 0000 1101

A & B 0000 1100
A | B 0011 1101
A ^ B 0011 0001 异或(1 1->0 0 0->0)
~B 1111 0010
*/

// 2*8=16怎么运算最快? 2*2*2*2
// 二进制运算效率极高
// << 二进制左移 *2
// >> 二进制右移 /2

System.out.println(2<<3); // 左移三位,16
/*
2: 0000 0010
16: 0001 0000
*/

}
}

Java 中的 二进制左(右)移运算符<<(>>),属于效率极高的位运算:它会将运算符左侧数值的二进制补码整体向左移动右侧指定的位数,移出的高位直接丢弃,低位统一补 0;在数值不溢出的前提下,每左移 1 位等价于原数乘以 2。代码里2<<3就是把十进制 2(二进制10)左移 3 位,得到二进制10000,对应十进制 16,等价于 2×2³=2×8,因为位运算直接由 CPU 底层指令执行,无需复杂的乘法运算流程,所以是计算 2 的幂次乘法的高效写法。

拓展赋值运算符和三元运算符

public class Demo10 {
public static void main(String[] args) {
int a = 10;
int b = 20;

a+=b; // a = a+b, 30
a-=b; // a = a-b, -10

// 字符串连接符 +, String
System.out.println(a+b); // 30
System.out.println(""+a+b); // 1020
System.out.println(a+b+""); // 30

// x ? y : z;
// if x == true x = y else x = z
int score = 80;
String type = score < 60 ? "不及格" : "及格"; // 必须掌握,非常常用
// if
System.out.println(type);
}
}

注:Java 中的 + 运算符遵循左结合规则,从左向右依次运算,所有操作数均为数值类型时执行算术加法,一旦遇到字符串类型就切换为字符串拼接逻辑,将后续操作数转为字符串后拼接。

包机制

为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。在不同的包可以有同名类,本质为一个“文件夹”。

包语句的语法格式为:

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

**一般利用公司域名倒置作为包名; ** www.baidu.com com.baidu.www

如若在IntelliJ IDEA新建包,未产生类似于树状结构,可以参考如图所示步骤,取消勾选Compact对应选项即可。

在这里插入图片描述

为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用 “import” 语句可以完成此功能。

import package1[.package...].(classname|*);

除了Java已经写好的包中类,你也可以导入你自己写的包。

强烈建议可以去读一读 阿里巴巴开发手册,规范自己的代码编写,养成良好的编程习惯。

JavaDoc

javadoc命令是用来生成自己API文档的。

可以查看JDK帮助文档,来了解Java相关的API。Overview (Java Platform SE 8 )

参数信息:

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

package com.ming.base;

/**
* @author Ming
* @version 1.0
* @since 1.8
*/

public class Doc {
String name;

/**
* @author Ming
* @param name
* @return
* @throws Exception
*/

public String test(String name) throws Exception{
return name;
}

}

运行javadoc命令生成自己的API文档.

在这里插入图片描述

在这里插入图片描述

点开生成的index.html可以查看自己的API文档。

在这里插入图片描述

学会查找使用IDEA生产JavaDoc文档! 面向百度编程,面向AI编程。

在这里插入图片描述

在这里插入图片描述

打开对应的输出目录,点开index.html,查看自己的JavaDoc文档。

在这里插入图片描述

赞(0)
未经允许不得转载:171主机测评 » Java基础语法2
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址