JAVA基础(1)
一,JAVA的特性与优势
1.跨平台/可移植性
这是java的核心优势,比如:JAVA的int 永远都是32位,不像c++可能是16,32,可能是根据编译器厂商规定的变化,这样的话,程序的移植就会变得非常的麻烦。
2.安全性
3.面对对象
面对对象是一种程序设计技术,非常适合大型软件的设计和开发。由于C++为了照顾大量C语言使用者而兼顾了C,使得自身仅仅成为了带类的C语言,多少影响了其面对对象的彻底性,JAVA则是彻底的面对对象语言
4.简单性
JAVA就是C++ 语法的简化版,我们也可以将JAVA称之为"C+±"
5.高性能
JAVA最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运次效率总是低于低级语言的,JAVA语言本身发展中通过虚拟机的优化提升了几十倍效率。
6.分布式
JAVA是为INTERNET的分布式环境设计的,因为它能处理TCP/IP协议,事实上,通过URL访问一个网站资源和访问本地文件是一样简单的,JAVA还支持远程方法调用(RMI,REmote,Method Invocation),使程序能够通过网络调用方法。
7.多线程
多线程的使用可以带来更好的交互相应和实时行为
8.健壮性
JAVA是一种健壮的语言,吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分
二,JAVA的跨平台原理
跨平台,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。
实现跨平台:Java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟机,该系统就可以运行java程序。(注意不是能在所有的平台上运行,关键是该平台是否能安装相应的虚拟机)。
Java跨平台原理
由源文件(.java)—>字节码文件(.class)(二进制文件)-----> 解释---->Unix,Win,Linux等机器。
1.一次编译,到处运行
2.编译器的作用:将源文件编译成class文件
3.虚拟机的作用:将字节码文件解释成对应平台机器码并执行。
4.java可以实现跨所有的平台?只有提供并且安装了相对应的虚拟机就可以跨该平台。
5.虚拟机和解释器的关系:解释器是虚拟机的一个重要的组成部分。
6.Java语言的执行要经过编译和解释两个阶段。
三,JAVA数据类型
基本数据类型
JAVA是一种强类型语言,每个变量都必须声明其数据类型。
基本数据类型转换问题
1.什么是类型转换
类型转换: 在赋值运算或者是算术运算的时候,要求数据类型一致,就要进行类型的转换。
2.类型转换的种类
自动转换,强制转换
3.类型级别:(从低到高)
byte->short->char->int->long->float->double
级别是用来在一个表达式中有多种数据类型的时候,要找出当前表达式中级别最高的那个类型,然后其余的类型都转换为当前表达式中级别最高的类型进行计算。
在进行计算的时候
左<右:强转
左>右:直接自动转换
左=右:直接赋值
四,JAVA运算符
1.算术运算符
2.赋值运算符
3.扩展赋值运算符
4.关系运算符
5.逻辑运算符
6.位运算符
7.条件运算符
五,其他
1.final变量(常量)
用final 修饰的成员变量表示常量,只能被赋值一次,赋值之后的值无法改变。
final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。
另外,final变量定义的时候,可以先声明,而不给初值,这种变量也称为final空白,无论什么情况,编译器都确保空白final在使用之前必须被初始化。但是,final空白在final关键字final的使用上提供了更大的灵活性,为此,一个类中的final数据成员就可以实现依对象而有所不同,却有保持其恒定不变的特征。
2.scanner用法
1.先导入Java.util.Scanner包
import java.util.Scanner;
2.创建Scanner类的对象
Scanner sc=new Scanner(System.in);
3.创建一个变量来接收数据
int num1=sc.nextInt();
double num2=sc.nextDouble();
String num3=sc.next();
float num3=sc.nextFloat();
4.注意
输入字符串时Java中next()只能获取空格之前的数据
解决办法:
为了获得所以数据,我们修改输入数据的分隔符,添加sc.useDelimiter(“\n”);
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);//从键盘接收数据//
sc.useDelimiter("\n"); //输入数据的分隔符
String s=sc.next();
System.out.println(s);
}
}