**JAVA入门基础2**(系列更新)———JAVA 基础变量
**JAVA入门基础2**(系列更新)———JAVA 基础变量
Java基础
1.注释
出现在源程序中对代码进行解释说明,增强代码可读性。不会被编译到.class字节码文件中
单行注释
//System.out.println("helloWorld");
多行注释
/* 要注释的内容 */
/*System.out.println("helloWorld");
System.out.println(1);*/
IDEA ctrl + /
文档DOC注释
比较专业的注释,javadoc工具自动解析提取出这种方式注释的内容生成帮助文档。
/**hello
* world!
*/
2.标识符和关键字
2.1 标识符
Java语言中对于变量、常量、方法和类等要素命名时使用的字符序列统称为标识符.
标识符命名规则
- 标识符由字母、下划线、美元符号或数字组成且不能由数字开头
- 标识符大小写敏感(如name和Name是两个不同的标识符)
- 不能使用关键字作为变量名或方法名
注意:标识符选取尽量“见名知意”。
例:姓名尽量选择类似name而不是a、b
驼峰命名法则
当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母,例如:firstName、lastName,这样的变量名看上去就像骆驼峰一样此起彼伏.
2.2 关键字(keyword)
Java中事先定义的、赋予特定含义的字符串,有时又叫保留字。所有Java关键字都是小写英文。
其中goto和const从未使用,但也被Java作为关键字保留。
3.数据类型
Java 语言的数据类型分为两种:基本数据类型和引用数据类型。
3.1 基本数据类型
整数型:byte、short、int、long
字节型(byte)
byte 类型是最小的整数类型。当用户从网络或文件中处理数据流时,或者处理可能与 Java 的其他内置类型不直接兼容的未加工的二进制数据时,该类型非常有用。
短整型(short)
short 类型限制数据的存储为先高字节,后低字节,这样在某些机器中会出错,因此该类型很少被使用。
整型(int)
int 类型是最常使用的一种整数类型,32位内存,能表示的范围 -2** 31 ~ 2**31-1。
长整型(long)
对于大型程序常会遇到很大的整数,当超出 int 类型所表示的范围时就要使用 long 类型
浮点类型:float、double
单精度浮点型(float)
占用 4 字节的内存空间aaaa
双精度浮点型(double)
占用 8 字节的内存空间,比单精度类型 float 具有更高的精度和更大的表示范围。
Java 默认的浮点型为 double,例如,11.11 和 1.2345 都是 double 型数值。如果要说明一个 float 类型数值,就需要在其后追加字母 f 或 F,如 11.11f 和 1.2345F 都是 float 类型的常数。
布尔类型:boolean
用于对两个数值通过逻辑运算,判断结果是“真”还是“假”。Java 中用保留字 true 和 false 来代表逻辑运算中的“真”和“假”。因此,一个 boolean 类型的变量或表达式只能是取 true 和 false 这两个值中的一个。
在 Java 语言中,布尔类型的值不能转换成任何数据类型,true 常量不等于 1,而 false 常量也不等于 0。这两个值只能赋给声明为 boolean 类型的变量,或者用于布尔运算表达式中。
字符类型:char
使用两个字节的 Unicode 编码表示,它支持世界上所有语言,可以使用单引号字符或者整数对 char 型赋值。
3.2 引用数据类型
- 引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时候被指定为一个特定的类型,声明之后不能改变。
- 引用数据类型包括:类(对象)、接口、数组。
- 所有引用类型默认值都是null.
- 一个引用变量可以用于引用任何与之兼容的类型。
引用数据类型的变量定义及赋值有一个相对固定的步骤或格式。
数据类型 变量名 = new 数据类型();
每种引用数据类型都有其功能,我们可以调用该类型实例的功能。
变量名.方法名();
3.3数据类型转换
3.3.1简单数据类型转换
1)自动类型转换
低级变量可以直接转换为高级变量。
简单数据类型由低级到高级分别为(byte,short,char)—int—long—float—double
byte b;
int i=b;
long l=b;
float f= b;
double d = b;
如果低级类型为char时,向高级转换的时候会转换为对应的ASCII码值。
char c='c';
int i=c;
System.out.println(i);
输出:99
对于byte、short、char三种类型,他们的级别是相同的,不能相互之间自动转换,可以使用下述强制类型转换:
short s = 99;
byte b = (byte)s;
2)强制类型转换
将高级变量转换成低级变量,需要强制类型转换。如:
int i = 99;
byte b = (byte)i;
char c = (char)i;
这种转换可能存在隐患,导致溢出或者精度下降。
3)包装类过渡类型转换
Java的包装类型对应于其基本类型一共有八类,分别为:Boolean、Byte、Short、Character、Integer、Long、Float、Double。
在进行简单数据转换的时候,可以利用包装类型进行中间过渡。例:
short s = 99;
// byte b = s;
Short s1 = s;
byte b = s1.byteValue();
java的包装类型中,数值类型提供了除Character和Boolean之外的其他所有六种基本类型的转换,因此通过包装类型进行转换亦是一种有效手段。
3.3.2字符串类型与其它数据类型的转换
1、将基本数据类型与空字符串(" ")连接(+)即可获得其所对应的字符串
2、调用String 类中的valueOf()方法返回相应字符串
3、使用包装类的toString()方法。几乎从java.lang.Object派生出来的所有类型都提供了toString()方法,对于上述八种过渡类型也不例外。
Integer b = 21;
System.out.println(b.toString());
1、调用基本数据类型对应的包装类中的方法parseXXX(String)
2、对应包装类型的valueOf(String)
Integer i = Integer.parseInt("123");
Integer j = Integer.valueOf("234");
3.3.3将字符型直接作为数值转换为其他数据类型
将字符类型直接转换为其他类型实际上有两种对应关系:一种是将其转换成对应的ASCII码值、一种是转换关系,例如‘1’就是数值1,而不是ASCII码值,对于这种转换,可以使用Character的getNumericValue(char c)方法。
char a = '9';
System.out.println(Character.getNumericValue(a));
输出:9
4.Scanner类
属于引用类型,使用该类来完成用户键盘录入,获取到录入的数据。
使用步骤
导包:import java.util.Scanner;
创建对象实例:Scanner sc = new Scanner(System.in);
调用方法:
int i = sc.nextInt(); 用来接收控制台录入的数字
next()和nextLine()用来接收控制台录入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据.
next():
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之间遇到的空格,next()方法自动将其去掉
- 只有输入有效字符后,才将其后面输入的空白作为分隔符或结束符
- next()不能得到带有空格的字符
nextLine():
- 以Enter(回车键)为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
- 可以获得空格
5.简单的helloworld程序
public class HelloWorld {//public表示访问控制中的公开,class是定义一个类,HelloWorld表示一个类名
/**
*public 公开的
*static 静态
*main是方法名
*String[] args是main方法的形式参数列表
*是一个程序的执行入口
*/
public static void main(String[] args) {
System.out.println("Hello world!");//标准输出,打印到控制台。
}
}
1.编写程序,使用三条输出语句分别显示"Welcome to java" 、“Welcome to computer science,”、“programming is fun”,使输出为如下形式
public class Helloworld {
public static void main(String[] args) {
System.out.println("Hello World");//println会自动换行
System.out.println("Welcome to java");
System.out.println("Welcome to computer science");
System.out.println("programming is fun");
//使用快捷键CRTL+D加快速度
}
}
> Welcome to java
> Welcome to computer science,programming is fun
2.找到最大和最小的byte short int long float double。 这些数据类型种哪个需要的内存最小?
这里的话可以使用java中的
.size(位数)
.BYTES(字节数)
顺带一提MIN_VALUE(定义最小值)
.MAX_VALUE(定义最大值)
Java API 中查阅得,Byte是类,byte是基本数据类型,准确来说Byte是byte的封装类
所以在使用时sout应该是Byte.BYTES
应是类的方法名,不应是数据类型直接加.BYTES (byte.BYTES)
几大属性名输出实现 :代码如下
public class 类型字节测试程序 {
public static void main(String[] args) {
System.out.println(Byte.BYTES);
System.out.println(Short.BYTES);
System.out.println(Integer.BYTES);
System.out.println(Long.BYTES);
System.out.println(Float.BYTES);
System.out.println(Double.BYTES);
}
得出输出结果:
1
2
4
8
4
8
由此可见占用字节数最大的是double & long
由此可见/占用字节数最小的是byte
public class 类型字节测试程序 {
public static void main(String[] args) {
System.out.println (new StringBuilder ().append ("Byte-->>").append ("字节数:").append (Byte.BYTES).append (";位数:").
append (Byte.SIZE).append ("; 最小值-->最大值:").append (Byte.MIN_VALUE).append ("-->").append (Byte.MAX_VALUE));
System.out.println (new StringBuilder ().append ("Short-->>").append ("字节数:").append (Short.BYTES).append (";位数:").
append (Short.SIZE).append ("; 最小值-->最大值:").append (Short.MIN_VALUE).append ("-->").append (Short.MAX_VALUE));
System.out.println (new StringBuilder ().append ("Integer-->>").append ("字节数:").append (Integer.BYTES).append (";位数:").
append (Integer.SIZE).append ("; 最小值-->最大值:").append (Integer.MIN_VALUE).append ("-->").append (Integer.MAX_VALUE));
System.out.println (new StringBuilder ().append ("Long-->>").append ("字节数:").append (Long.BYTES).append (";位数:").
append (Long.SIZE).append ("; 最小值-->最大值:").append (Long.MIN_VALUE).append ("-->").append (Long.MAX_VALUE));
System.out.println (new StringBuilder ().append ("Float-->>").append ("字节数:").append (Float.BYTES).append (";位数:").
append (Float.SIZE).append ("; 最小值-->最大值:").append (Float.MIN_VALUE).append ("-->").append (Float.MAX_VALUE));
System.out.println (new StringBuilder ().append ("Double-->>").append ("字节数:").append (Double.BYTES).append (";位数:").
append (Double.SIZE).append ("; 最小值-->最大值:").append (Double.MIN_VALUE).append ("-->").append (Double.MAX_VALUE));
System.out.println (new StringBuilder ().append ("Character-->>").append ("字节数:").append (Character.BYTES).append (";位数:").
append (Character.SIZE).append ("; 最小值-->最大值:").append ((int)Character.MIN_VALUE).append ("-->").append ((int)Character.MAX_VALUE));
}
}
####Byte-->>字节数:1;位数:8; 最小值-->最大值:-128-->127
####Short-->>字节数:2;位数:16; 最小值-->最大值:-32768-->32767
####Integer-->>字节数:4;位数:32; 最小值-->最大值:-2147483648-->2147483647
####Long-->>字节数:8;位数:64; 最小值-->最大值:-9223372036854775808-->9223372036854775807
####Float-->>字节数:4;位数:32; 最小值-->最大值:1.4E-45-->3.4028235E38
####Double-->>字节数:8;位数:64; 最小值-->最大值:4.9E-324-->1.7976931348623157E308
####Character-->>字节数:2;位数:16; 最小值-->最大值:0-->65535
3.编写程序,输入一个姓名,输出hello ,XXX
import java.util.Scanner;
public class 输入输出 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String i =sc.next();
System.out.println("hello ,"+i);
}
}
例:
name:Zhang San
hello,Zhang San
4.找出无效标识符并解释原因。
- RESULT-----------------------有效
- result-------------------------无效,不能由数字开头
- x12345y---------------------有效
- black&white-------------------无效,标识符由字母、下划线、美元符号或数字组成
- answer_-------------------有效
- while----------------------无效,关键字
- $4---------------------------有效
标识符命名规则
- 标识符由字母、下划线、美元符号或数字组成且不能由数字开头
- 标识符大小写敏感(如name和Name是两个不同的标识符)
- 不能使用关键字作为变量名或方法名
5.学习使用数据类型。声明一些有关个人信息的变量,包括姓、名、年龄、住址等信息。
public class 数据类型 {
public static void main(String[] args) {
int age;
String name;
String address;
short nianling;
}
}
6.写出以下每步操作对应的语句
- 声明一个字节型变量100
- 转换成字符串类型
- 将字符串类型转换为整型
- 得到的整型转换为双精度浮点型
下面展示一些 内联代码片
。
public class 类型转换 {
public static void main(String[] args) {
byte i =100;
String a=String.valueOf(i);
Integer b = Integer.parseInt(a);
Double c = Double.valueOf(b);
System.out.println(c+""
);
}
}