Java不同于C语言,C语言是面向过程的语言,而Java是一门面向对象编程语言。
Java不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。
Java是由一家名叫"sun"的公司于1995年推出的高级编程语言。起初因为sun公司门口的橡树叫oak,后因为版权原因不得不更改,在更改的时候因为某人喜欢爪哇岛的咖啡,所以叫Java, Java语言中的许多库类名称,多与咖啡有关:如JavaBeans(咖啡豆)、NetBeans(网络豆)。
以上来自于百度百科,有删改。
IDEA(Java开发工具)安装好了吗?JDK弄好了吗?Java环境搞明白了吗?去学习一门编程语言不能光说不练,去百度也好,去问别人也好,先把这些东西准备好,一起来进入Java的世界。
JDK全程Java Development Kit,是Java这门语言的工具包,就像你玩我的世界的物品栏一样 ,其中包含了JRE(Java运行环境),你可以理解为工作台 而jre中又包含了JVM(Java虚拟机),JVM时一个软件,使用C/C++实现的,当你写了一段代码编译运行时,它会跑到JVM上去执行的。
主函数相当于人类的头部,头部只能有一个,用来运行“身体”的各项部位。
Java之中的主函数是这么写的
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
class是一个关键字,意思是定义一个类,这行代码的意思是创建一个公共的类HelloWorld。
public是一个访问修饰限定符,意思是公共的,意思是他是一个公共的类。如果一个类你用了public修饰,那么他必须和文件和文件名字一样。
其他的暂不做过多介绍。
main是一个函数,在Java中也叫方法,main的意思是头函数,代码执行的过程主体都是执行main函数中的。
System.out.println("HelloWorld");
这段代码有些人很熟悉,Hello World,每个人学习编程遇到的第一个语句你好世界。这段代码类似于C语言的printf。代码执行结果如下
当你使用printf时,和C语言的使用方式一样,当你使用println时,就是如上的使用方法,也可以使用print,这个是正常的打印,如果你加上ln,就会换行。
/*这里是一行注释
*/
public class HelloWorld {
public static void main(String[] args) {
System.out.printf("HelloWorld");
System.out.println("HelloWorld");
System.out.print("HelloWorld");
}
}
这段代码虽然很简单,但是意义非凡。
当你写下了这段程序,就意味着你踏入了编程语言的大门,无论你是没有接触过编程语言还是接触过。一入Java深似海,从此节操是路人。
当我们编译运行Java文件时,会出现XXX.class文件,这个就是字节码文件,每一个类编译时会出现一个字节码文件,如果你在一个Java文件中编写了多个类,那么这些类会分别生成一个字节码文件。(不推荐在一个Java文件中写多个类)
当你编译后生成字节码文件,运行时会将字节码文件放到JVM上运行。只要你拥有一个Java文件的字节码文件,你就可以在其他地方运行。
这就是Java的可移植性,一次编译,到处运行。
变量指的是程序运行时可变的量,相当于开辟一块内存空间来保存一些数据。
类型则是对变量的种类进行了划分,不同的类型的变量具有不同的特性。
变量相当于是一个箱子,箱子有大小,可以放小于箱子大小的物品。
要了解变量,我们先来了解一下冯诺依曼体系:
输入设备:键盘麦克风等等。
输出设备:屏幕
外存储器:磁盘,光盘,U盘,硬盘。
内存储器:运行内存。比如我们购买手机时,商家会介绍手机,手机有8G+256G的内存。其中的8G就是内存储器,就是运行内存,而256相当于外存储器。
变量类型 变量名 = 变量值。
整形是int:
int a = 10;
这里定义了一个名叫a的整形变量,其数值为10.
占用了4个字节。
不同于C语言在32位/64位机器上int类型大小不同,Java的int类型统一是4字节,这又一次说明了Java的可移植性高。
并且Java中的int,统一是有符号类型,没有C语言中unsigned int无符号类型。
int的大小是4字节=(4*8) = 32位.其中首位为符号位,0为正数,1为负数,其余的31位为数值位。
所以int类型的上下限为-2^31 至 2^31-1。
我们来看一下
public class HelloWorld {
public static void main(String[] args) {
int a = 10;
System.out.println(a);
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
}
}
执行结果如下
实际上,数值的上下限是个环
举个例子:
正数最大值的二进制是
0111 1111 1111 1111 1111 1111 1111 1111
加一变成
1000 0000 0000 0000 0000 0000 0000 0000
其数值为2^31,因为符号位是1,所以为负数。
测试代码如下
public class HelloWorld {
public static void main(String[] args) {
int a = 10;
System.out.println(a);
System.out.println(Integer.MAX_VALUE+1);
System.out.println(Integer.MIN_VALUE-1);
}
}
变量名可以包含数字,字母,下划线和美元符号
public class HelloWorld {
public static void main(String[] args) {
int Max1 = 0;
int Max_2 = 0;
int 3a = 0;//不可用
int Max_$ = 0;
int _______ = 0;//不规范
}
}
变量名首位需要是字母,不可以数字开头
如果变量名均为下划线,是可以的,但是不规范不建议。
在写代码的时候,尽量要养成好的编程习惯。
例如,变量尽量使用英文,不要使用拼音。实际上,使用汉字作为变量名也是可以的,但同样不建议。
至于为什么能使用汉字,因为Java使用了Unicode字符集,包含了中文,拉丁文等等。
有的数据较大,int无法存储,所以Java中有long,
long是长整型,可以理解为int–plus
但是数字后面要跟一个l或者L,代表他是long类型
long是64个比特位 = 8个字节.
上下限是-2^63 至 2^63-1。
public class HelloWorld {
public static void main(String[] args) {
long a = 10L;
System.out.println(a);
System.out.println(Long.MAX_VALUE+1);
System.out.println(Long.MIN_VALUE-1);
}
}
是一个精简版的int,只占2个字节。
上下限是-2^15 至 2^15-1
double占8个字节,用来处理小数。
如果你使用int类型,在运算1/2的时候结果是0,因为2个整形的结果一定是整形。
int a = 1/2;
System.out.println(a);
double a = 1;
double b = 2;
System.out.println(a/b);
并且在计算机中,小数是无法完全精确的,它只能精确到一定位。
double a = 1.1;
System.out.println(a*a);
float和double类似,但是其只有4个字节大小,需要在小数后加一个f或者F,代表他是float。
float a = 1.1f;
System.out.println(a);
如果不加f,那么系统会默认该小数是double,double的8个字节大小放不进float,所以会报错。
float a = 1.1;
System.out.println(a);
变量需要进行初始化,初始化就是指在变量定义的时候赋值,在部分语言例如C语言中,运行不进行初始化,但是会报警告,此时该变量值为随机。
而Java中比较严谨,虽然你可以定义未初始化的变量,但是不允许使用未初始化的变量,会直接报错。
Java中不存在类似C中的截断。
public class HelloWorld {
public static void main(String[] args) {
int a;
System.out.println(a);
}
}
C语言中有字符类型char,Java中有char和byte两种。
Java中的char不同于C语言中的插入,Java中的char是2个字节。
char ch = '特';
char ch2 = 97;
System.out.println(ch);
System.out.println(ch2);
字节类型byte,只占一个字节,用法类似C语言中的char。
但是1个字节大小有限,不要超过1个字节上下限。
8个比特位的上下限是-128至127.
对于其他类型,比如bool类型的介绍,将会在以后的文章中介绍。