1.java白皮书的关键术语
- 简单的
参照c++,是c++语法的纯净版本但没有c++中的头文件,指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等 - 面向对象
- 网络技能
- 健壮性(Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。对指针的丢弃是 Java 的明智选择。Java 的安全检查机制使得 Java 更具健壮性。)
- 安全性
java被设计成能够防范各种袭击,- 运行时堆栈溢出。如,蠕虫等病毒常用的袭击手段
- 在自己的处理空间之外破坏内存
- 未经授权读写文件
- 体系结构中立
Java 程序(后缀为 java 的文件)在 Java 平台上被编译为体系结构中立的字节码格式(后缀为 class 的文件),然后可以在实现这个 Java 平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。 - 跨平台/可移植性
- 解释型
- 高性能
与那些解释型的高级脚本语言相比,Java 的确是高性能的。事实上,Java 的运行速度随着 JIT(Just-In-Time)编译器技术的发展越来越接近于 C++。 - 多线程
- 动态性
java 语言的设计目标之一是适应于动态变化的环境。Java 程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java 中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
2.关于java的一些常见的误解
1).java是html的扩展
java是一种程序设计语言,hrml是一种描述网页结构的方式。处理用于房子java applet的html扩展之外,两者没有任何共同之处
2).使用XML,就不需要java
java是一种程序设计语言,XML是一种描述数据的方式,可以使用任何一种程序设计语言处理XML数据
3.jdk安装
- 1.https://www.oracle.com/technetwork/java/javase/overview/index.html打开JDK官网版本下载对应系统的版本安装
- 2.配置系统变量
①CLASSPATH 你安装的jdk里的lib路径(新增)
②JAVA_HOME 你安装的jdk路径(新增)
③Path 你安装的jdk里的bin路径(编辑Path) -
3.打开cmd输入java -version(安装成功输入会显示版本,失败会报错)
1661740277307.png
- 4.jre:某些jdk版本没有jre文件夹,我们需要自己生成,步骤如下:
- 1.打开cmd切换到安装的jdk目录下
- 2.输入指令bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre(解释:用以调用jdk安装路径中bin文件夹下面的jlink程序,刺激生成jre)
4.安装源代码库
源文件库:库源文件在jdk中以一个压缩文件src.zip形式发布(我安装的版本src.zip在lib文件夹中),在包含src.zip的文件夹内新建一个src文件夹,然后cmd跳转到src文件夹下,输入jar xvf ../src.zip
5.jdk目录结构
- bin:编译器和工具
- demo:演示
- include:用于编译本地方法的文件
- jre:java运行环境文件
- lib:类库文件
- src:类库源文件
6.命令行编译并运行java程序
例:(进入下载的示例中的v1ch02/Welcome目录启动cmd)
javac Welcome.java
javac Welcome
注:1. javac是一个java编译器,它将文件Welcome.java编译成了Welcome.class,并发送到java虚拟机,虚拟机执行编译器存放在class文件中的字节码
2.注意大小写
3.编译时需要提供一个文件名(Welcome.java),而运行时只需要指定类名(Welcome)不需要待扩展名.java或.class
7.一个简单的java应用程序
下面看一个简单的java应用程序,它只发送一条消息到控制台窗口中
public class FirstSample{
public static viod main
}
8.java的编译和运行过程
java程序从.java文件创捷到程序运行要经过两大过程
- java文件由编译器编译成.class文件
- 字节码由JVM解释运行
9.注释
java的注释分为三种
- //(每行的前面)
- /* */多行
- /** */折中注释可以用来自动生成文档
10.java数据类型
java是一种强类型语言,这就意味必须为每一个变量声明一种类型,在java中,一共有8中基本类型,其中有4中整型、两种浮点类型、一种用于表示Unicode编码的字符单元的字符类型char和一种用于表示真值的boolean类型
整型(表示没有小数部分的数值,它允许是负数):
- int 4字节
- short 2字节
- long 8字节
- byte 1字节
浮点类型(表示有小数部分的数值):
- float 4字节(有效位数为6~7位)
- double 8字节(有效位数为15位)
表示溢出和出错情况的三个特殊的浮点数值- Double.POSITIVE_INFINITY(正无穷大)
- Double.NEGATIVE_INFINITY(负无穷大)
- Double.NaN(NaN)
char类型
char类型用于表示单个字符,通常用来表示字符常量。例如:'A'是编码为65所对应的字符常量,与"A"不同,"A"是一个包含字符A的字符串,在java中,char类型用UTF-16编码描述一个代码单元
强烈建议不要在程序中使用char类型除非确实需要对UTF-16代码单元进行操作
boolean类型
boolean(布尔)类型有两个值:false和true。用来判断逻辑条件(java中整型值与布尔值不能进行相互转换,在c++中可以。在c++中整数0相当于布尔值false,非0值相当于布尔值true)
变量
在java中,每一个变量属于一种类型(type),在声明变量时,变量所属的类型位于变量名之前
声明变量的一些例子:
double salary;
int vacationDays;
long earthPopulation;
boolean done;
每个声明都是一条完整的语句,所以必须以分号结束,变量名必须是一个以字母开头的由字母或数字构成的序列,声明一个变量之后,必须用赋值语句对变量进行显式初始化,java使用未被初始化的变量会报错,
例:
int vacationDays;
System.out.printIn(vacationDays)
如果想要知道哪些Unicode字符属于java中的字母,可以使用Character类的isJavaIdentifierStart和isJavaIdentifierPart方法进行检测(不能将变量命名为java保留字,变量名对大小写敏感)
注:
c和c++区分变量的声明与定义
例如:int i=10;是定义一个变量i,extern int i;是声明一个变量i,而在java、中,不区分变量的声明与定义
常量(关键字final表示这个变量只能赋值一次,一旦赋值,就不能再更改了,习惯上,常量名使用大写)
在java中,利用关键字final声明常量,例如:
public class Constants
{
public static void main (String[] args)
{
final double CM_PER_INCH =2.54;
double paperWidth = 8.5;
double paperHeight = 11;
System.out.printIn('Paper size in centimeters:' + paperWidth * CM_PER_INCH + 'by' + paperHeight * CM_PER_INCH)
}
}
在java中,希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量,可以使用关键字static final设置一个类常量,例如:
public class Constants2
{
public static void main (String[] args)
{
final double CM_PER_INCH =2.54;
double paperWidth = 8.5;
double paperHeight = 11;
System.out.printIn('Paper size in centimeters:' + paperWidth * CM_PER_INCH + 'by' + paperHeight * CM_PER_INCH)
}
public static final double CM_PER_INCH =2.54;
}
注:类常量的定义位于main方法的外部,所以,在同一个类的其他方法中也可以使用这个常量,如果一个常量被声明为public,那么其他类的方法也可以使用这个常量
严格的浮点计算(strictfp)
例如,可以把mian方法标记为:public static strictfp void main (String[] args)
于是在mian方法中的所有指令都将使用严格的浮点计算







网友评论