常量 *
指在程序执行期间其值不能发生变化的数据。例如数学中的π= 3.1415……又如:整数123,小
数1.23,字符’A’,布尔常量 true、false等,程序开发中,常量名一般规则全部大写,声明常量时必
须赋值,以后只能使用,不能再赋值,java语言声明常量使用final。
package cn.webrx;
//静态导入 PI是常量,
import static java.lang.Math.PI;
public class V2 {
//成员,属性
final static int AGE = 18;
public static void main(String[] args) {
//局部 常量
final double pi = Math.PI;
System.out.println(AGE);
System.out.println(pi);
//使用常量
System.out.println(PI);
}
}
运行结果:
18
3.141592653589793
3.141592653589793
变量 *
变量:是指值在程序运行期间可以被改变的量。变量用于储存信息。它指向内存的某个单元,
而且指明了这块内存有多大。java是强类型,变量必须先声明初始化才可以使用。java程序中,变
量名是区分大小写。
package cn.webrx;
import java.util.Date;
public class Var1 {
//属性 成员 变量 属性 在实例化会自动初始化 int 0 double float 0.0 Object null
boolean false
Date age ;
int[] aa;
//方法
public static void main(String[] args) {
//局部变量
//var v = new Var1();
Var1 vv = new Var1();
System.out.println(vv.age);
//System.out.println(vv.aa);
int x = 55;
{
//块级变量
int y = 5;
System.out.println(y);
System.out.println(x);
}
int y = 6;
System.out.println(y);
System.out.println("Hello world");
//合用局部变量,不会自动初始化,在使用的时候必须赋值初始化
//String s = "Hello world";
String s;
s = "ok";
//System.out.println(s.repeat(13));
System.out.println("sq1server");
System.out.println(s);
System.out.println("s");
//save(s) 保存
}
}
java 10 var 类型推断声明变量
package cn.webrx;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
public class Var2 {
//错误的,var局部变量类型推断,必须声明赋值,不能成员成员变量
//var i = 5;
public static void main(String[] args) {
//要求java 规范必须 10以上版本
var v = LocalDateTime.now();
var sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
var list = new ArrayList<Map<String,Object>>();
var a = 15;
a = 16;
var d = new Date();
for (var i = 1.0; i <= 5; i++) {
System.out.println(i);
}
}
}
常量:声明final 类型 常量名(标识符) = 值; //声明时必须初始化值,只能使用,不可再次赋值。
//声明 使用 常量
变量:类型 变量名(标识符)= 值; //可以使用,也可以再次赋值,如果不是静态的,必须实例化对
象后才可能在方法中访问 user.age。
//声明 使用 变量
静态:static 变量常量 修饰符,java规定main方法必须是static方法,在main方法中可以直接访问
static变量的值。
package org.webrx;
public class Student {
//声明常量
static final int AGE = 18;
//静态变量,可以在main方法直接使用,不用实例化 属性
static int num = 55;
public static void main(String[] args) {
//System.out.println(AGE);
//实例化对象
//Student lisi = new Student();
//使用对象的常量
num = 99;
//System.out.println(lisi.AGE);
System.out.println(num);
System.out.println(AGE);
System.out.println(Student.AGE);
}
}
数据类型
*
Java
支持数据类型分为两类: 基本数据类型和引用数据类型。
基本数据类型共有
8
种,可以分为三类:
数值型:整数类型(
byte
、
short
、
int
、
long
)和浮点类型(
float
、
double
)
字符型:
char
布尔型:
boolean
float
和
double
的最小值和最大值都是以科学记数法的形式输出的,结尾的
“E+
数字
”
表示
E
之前的数字
要乘以
10
的多少倍。比如
3.14E3
就是
3.14×1000=3140
,
3.14E-3
就是
3.14/1000=0.00314
。
注意一下几点:
java
八种基本数据类型的字节数
:1
字节
(byte
、
boolean)
、
2
字节
(short
、
char)
、
4
字节
(int
、
float)
、
8
字节
(long
、
double)
39/380
浮点数的默认类型为
double
(如果需要声明一个常量为
float
型,则必须要在末尾加上
f
或
F
)
整数的默认类型为
int
(声明
Long
型在末尾加上
l
或者
L
)
八种基本数据类型的包装类:除了
char
的是
Character
、
int
类型的是
Integer
,其他都是首字母
大写
char
类型是无符号的,不能为负,所以是
0
开始的
/*
* Copyright (c) 2006, 2023, webrx.cn All rights reserved.
*
*/
package cn.webrx;
/**
* <p></p>
* <p>Powered On 2023-02-07 15:42:14</p>
*
*
* @version 1.0
* @since 17
*/
public class Type1 {
public static void main(String[] args) {
//byte short int long float double char boolean
byte b1 = 5;
System.out.println(b1);
short s1 = 5;
System.out.println(s1);
int i1 = 5;
System.out.println(i1);
long n1 = 5;
System.out.println(n1);
System.out.println(Integer.MIN_VALUE);
System.out.println(Integer.MAX_VALUE);
float f1 = .5f;
double d2 = .5;
System.out.println(f1);
System.out.println(d2);
char c1 = 'a';
int num = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println(num);
System.out.println(c2);
System.out.println((int) c2);
boolean f = !!!false == true;
System.out.println(f);
int aaa2 = (int)2482482234553L;
System.out.println(aaa2);
2.4.4 类型转换 *
自动类型转换隐式转换
转换规则:从存储范围小的类型到存储范围大的类型。简言之,由低到高。
具体规则为:byte→short(char)→int→long→float→double
强制类型转换(float)3.5;
double n = 10;
//ctrl + d 复制行
//alt + shift + up(down) 移动行
//快速进入某处代码位置(使用idea 书签) f11 ctrl + f11 shift+f11
}
}
类型转换 *
自动类型转换隐式转换
转换规则:从存储范围小的类型到存储范围大的类型。简言之,由低到高。
具体规则为:byte→short(char)→int→long→float→double
强制类型转换(float)3.5;
/*
* Copyright (c) 2006, 2023, webrx.cn All rights reserved.
*
*/
package cn.webrx;
import java.util.Date;
/**
* <p></p>
* <p>Powered by webrx On 2023-02-07 16:09:07</p>
*
* @version 1.0
* @since 17
*/
public class Type2 {
public static void main(String[] args) {
int a = 30;
//自动转换
long b = a;
//强制转换
byte c = (byte)a;
//Date d = new Date();
//int y = (int)ld.getTime();
}
}