前一段时间,已经将C语言学得差不多了,也算学的比较深入,虽然Java与C语言没有多大的共同之处,但也有必不可少的关联,无论哪门语言,都只是表达我们思维的工具,各有优缺,各有独到之处!!
我在大半年前就接触了Java语言,当时只是借助了一些课外书籍了解到了这门语言的基础,大概了解了它的一些基础语法,但后来就开始深入学习C语言,现在C语言的基础已经学的差不多了,也有了一定的程序思维逻辑,我认为每个人的代码逻辑,都是靠日积月累,反复学习而来的。
现在正式进入Java语言的学习,Java语言是一门面向对象设计的语言,而C语言则是面向过程(对象、过程之后再详谈)。
Java语言与C/C++语言最大的不同之处就是它具有可移植性。
(与C/C++不同,Java规范中没有“依赖具体实现的地方”。基本数据类型的大小以及有关运算都做了明确的说明。例 如,Java中的int永远是32位的整数,而在C/C++中,int可能是16位整数、32位整数,也可能是编译器提供商指定 的其他大小。在Java中,数据类型具有固定的大小,这消除了代码移植时令人头疼的主要问题。)
与之Java还具有的特性有:
简单性、分布式(微服务)、健壮性、安全性(⭐)、体系结构中立、解释性、高性能、多线程(⭐)、动态性。
以上则是Java的简单概述,下面进入主题!!!
一:Java数据类型
下面总览它的结构分支:
从这张图中可以清晰的看到java数据类型的分类,下面来讲解一些重点知识。
1. 在Java程序中,任何一个整型常量都是int型;描述小数默认是double型;
2. byte类型占用大小为1个字节;
int 类型占用大小为4个字节;
char 类型占用大小为2个字节;
double 类型占用大小为8个字节;
(以上均与平台无关)
3. 大的数据转化为小的数据类型必须强转;
看一段代码:
byte date1 = 12; //ok
System.out.print(date);
int date2 = 10;
byte date3 = date2; //error
byte date4 = 128; //error
byte date5 = (byte)128; //ok
注意:(1):整型常量赋值给byte变量时,若常量值在byte范围内,则无需强转,否则必须强转;
(2):若byte的值超出它的范围,则强转后的值将会是它把高位截断后的值;
4. 关于数据默认值,默认值在主方法中无效;
二:Java运算符
Java运算符与C语言中大同小异;
它也有基础运算符、三目运算符、关系运算符、逻辑运算符(⭐)、位运算符。
在这里,我只强调一下逻辑运算符;
逻辑运算符:与(&、&&) 或(|、||) 非(!)
与c语言区分的是:& 作逻辑运算符时,没有短路性;而&&作逻辑运算符时,具有短路型;
| 作逻辑运算符时,没有短路性;而 || 作逻辑运算符时,具有短路型;
下面看一段代码:
//error
if (1<2 | (3/0 == 0)){ //|和&都不具有短路原则
System.out.println("1ok");
}
//ok
if (1<2 || (3/0 == 0)){ //||和&&都具有短路原则
System.out.println("2ok");
}