文章目录
1 注释:与c语言比较,java注释有哪些不同?
java语言的注释分为三种:
单行注释:
// 注释的内容
多行注释 :
/*
注释的内容
*/
文档注释
前两种的用法与c语言相同,不再讲解
最后一种注释是java特有的,
文档注释的格式 :
/**
注释内容
*/
此注释的奇妙之处,在于我们可以通过jdk中的javadoc工具,来生成文档
/**
文档注释:
@version v1.0.0
@author zhang ze
作为test类,用于联系java基础语法
*/
public class test {
public static void main(String[] args) {
System.out.println("haha");
}
}
我们用命令行的方式来生成文档:
结果出现这种错误,本质上是因为我的电脑中cmd的中文编码方式是GBK,
而我的记事本中中文编码方式是utf-8,所以无法识别
输入下面的命令:
统一了编码方式,代码正常运行
然后再输入javadoc命令:
其中-d代表生成目录,-author与-version分别对应注释中的内容
生成的文档文件,要在源代码所在文件中去找:
这就是生成的java文档!!!
2 常量
常量指的是程序中运行中,不会改变的数据,其数值在编译阶段确定,一周有7天,每个人的生日等等,性别等都是常量
java与c语言中的常量类型相同,有以下几种:
整形常量:
整型常量是不带小数的
// 10
System.out.println(10);//作用相当于c语言中的打印函数
字符常量:
//'a' 字符常量a
System.out.println('a'); //打印字符常量a
字符串常量:
//"zhangsan"
System.out.println("zhangsan");
浮点数常量:
//3.14
System.out.println(3.14);
布尔常量:
//布尔常量:
//布尔常量只有两个,true 与false
System.out.println(true);
System.out.println(false);
空常量:
//空常量:值为null,这个东西以后再讲
3 数据类型
下面这些数据类型,将在下面变量中进行详解。
与c语言比较异同之处
java当中有8种基本数据类型,其中与c语言比较:byte类型是新增的类型,
对于布尔类型,在C99中新增此类型,名为bool,需要引用stdbool.h头文件才能使用。所以不算java中的新增类型,对于此类型在后面会详解
对于char类型,c语言中占1个字节,而在java中占两个字节,这个在后面会详解
4 变量
变量的值与常量不同,其值不在编译阶段确定,而在运行阶段确定,
且在运行时可以不断发生变化。
有多少种数据类型就有多少种变量,变量定义的格式:
数据类型 变量名 ;
int a ;
这些都是与c语言相同之处,与c语言不同之处:
如果变量没有被初始化与赋值则不能够被打印与使用,
这体现了java语言的安全性,为我们避免了很多坑。
下面讲解常用的变量:
整型变量:
int 类型变量
int a = 10;
System.out.println(a);
//Integer是int类型封装的类 //这个以后再具体讲解
//下面是打印int 类型的最大值与最小值
System.out.println(Integer.MAX_VALUE); //最大值为2^32-1 最小值为 -2^32
System.out.println(Integer.MIN_VALUE);
// int b =2147483648; //如果赋给超出数据类型最大值则会报错*/
这里体现了java与c语言的不同之处,对于超出数据类型范围的数值,java不予编译,
而c语言则继续执行,执行的结果符不符合预期,它是不管的。
java中的int类型与c语言中的区别
在c语言中int 类型在32位系统下一般占4个字节,在16位系统下一般占2个字节,
但是在java中无论在什么样的系统下,int 类型均占4个字节,这体现了java语言的可移植性强。
long 类型变量
// 长整型 long
//long类型占8个字节
//如果要标识10此时的类型,可以用L或l加在10的后面,以标识其数据类型是long ,建议用大写的L,因为小写的l太像1
long a = 10L;
System.out.println(a);
//Long是long类型的封装类
//下面获取long类型取值范围的最大值与最小值
System.out.println(Long.MIN_VALUE);
System.out.println(Long.MAX_VALUE);
java中long类型与c语言中的区别
在java中无论操作系统是多少位,long 类型永远占8个字节,
而c语言中long 类型所占的字节个数在不同操作系统下,有时是4个字节,有时是8个字节。
short类型变量
// short类型
//short类型占2个字节
short s =10;
System.out.println(s);
//short类型的封装类是Short
System.out.println(Short.MIN_VALUE);
System.out.println(Short.MAX_VALUE);
byte类型
byte b = 5;
//byte类型占1个字节,是整型数据类型
System.out.println(b);
System.out.println(Byte.MAX_VALUE);
System.out.println(Byte.MIN_VALUE);
浮点类型:
double类型
//double类型的数据只能占8个字节
double d = 3.14;
System.out.println(Double.MAX_VALUE);
System.out.println(Double.MIN_VALUE);
//不论c语言还是java中浮点数在内存中的存储都是一样的
//有些小数点是不能够被精确存储的,所以只有精确到小数点后多少位的说法。
float类型
//float类型的数据占4个字节
//由于小数默认是double类型,所以下面这条语句会出现错误
float f = 3.14;
System.out.println(Float.MAX_VALUE);
System.out.println(Float.MIN_VALUE);
在后面加上一个小写的f即可!
float f =3.14f;
字符类型,即char类型
char a ='张';
System.out.println(a);
汉字属于宽字符,占两个字节,为什么可以由char类型存储呢?是因为在java中char类型占2个字节
在ASCII码表中并没有‘张’这个字符,为什么还可以通过变量存储打印呢?这是因为在java中用的字符表不是ASCII码表,而是Unicode,它包含了ASCII码表
布尔类型变量
布尔类型的名字是boolean,这种数据类型的值只有两种,一个是true,一个是false,
在c语言中有0为假,非0为真的说法,在java中没有这种规则,只有true与false
boolean a =true ;
boolean b = false;
System.out.println(a);
System.out.println(b);
字符串类型
在c语言中是没有字符串类型的,存储字符串时所用的是数组,但是在java中定义了字符串变量,类型名为string
String str = "hello world";
System.out.println(str);
在java中没有\0的说法
5 System.out.println()函数及其相似函数的使用
System.out.println(10);
System.out.println(3.14);
System.out.println('a');
System.out.println("hello");
System.out.println(true);
我们可以看到System.out.println()这个函数可以打印整型,浮点型,字符型,字符串型,布尔型,所有的数据类型它都能够打印,这个函数使用起来极其方便!
另外:
int a =10;
System.out.println("hello"+a);
这段代码的结果是:
这个例子中+的作用是连接字符串,将hello10整体作为一串字符串打印出来
int a =10;
int b = 5;
System.out.println("hello"+a+b);
此时两个+号的作用均是连接字符串
int a =10;
int b = 5;
// System.out.println("hello"+a+b);
System.out.println(a+b+"hello");
此时结果又不一样了,这是因为前一个+是起算术作用,后一个+才起连接字符串的作用,
也就是说和字符串相连的+号起连接字符串作用!
另外两个打印函数:
//这个函数输出换行
System.out.println("输出换行");
//这个函数输出不换行
System.out.print("haha");
//这个函数与c语言中的printf函数一样,是格式化打印
System.out.printf("%d\n",19);
6 类型转换
在java中类型转换分为两种,一种是自动类型转换(隐式),另一种是强制类型转换(显式)
自动类型转换即数值范围小的类型,转换成数值范围大的类型,这种转换并不需要操作符
强制类型转换是将数值范围大的类型转换成数值类型小的类型,这种转换需要操作符。
(要转换的类型) 操作符置于要转换的变量名之前
int a = 10;
byte b =5;
b = (byte) a;//将a强制类型转换成byte类型,赋值给b
//浮点型与 整型之间的转换
int a = (int) 3.14; //3.14是double类型,数值范围大,需要先强制类型转换,再赋值给a
System.out.println(a); // 此时强制类型转换后,会省略掉小数部分
double d = 5; //自动类型转换后,会为整数加上小数
System.out.println(d);
//整型与字符型
//如果将字符赋给整型,再打印,即打印此字符的Unicode码值
int a = 'a';
System.out.println(a);
//如果将整型数据赋给字符类型,则会打印出对应的字符,如果没有,则什么都不打印
char c = 97;
System.out.println(c);
// 整型数据转换成字符串类型数据
//比如:整型123 转换成字符串"123"
//方法1 int 类型的封装类Integer来执行
int num =123;
String str = String.valueOf(num);
System.out.println(str);
// 方法2:
String str2 = num+""; //此时+起连接字符串作用
System.out.println(str2);
//字符串类型数据转换成整型数据
String str3 = "123";
//调用int 类型的封装类
int a = Integer.valueOf(str3);
System.out.println(a);
//布尔类型不能与其他类型的数据进行类型转换