Java基础(二),java基础
Java基础(二),java基础
什么是java
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
背景
Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。2010年Oracle公司收购Sun Microsystems。
体系
java分三个体系
1. JavaSE (Java 2 Platform, Standard Edition)
2. JavaEE (Java 2 Platform, Enterprise Edition)
3. JavaME (Java 2 Platform, Micro Edition)
特点
- 简单性
- Java容易学习,相对于C++而言更加纯净。
- 小,基本的解释器以及类支持仅有40k.
- 面向对象的语言(OO)
- 封装
- 继承
- 多肽
- 方法重载
- 方法覆盖
- 一种与平台无关的语言
- 解释性语言,一次编译,到处运行(JVM)
- 健壮性和安全性
- 删除了指针和释放内存等C++功能,避免了非法内存操作。
- 通过Java的安全体系架构来确保Java代码的安全性。
- 多线程
- 多线程应用程序能够同时运行多项任务。
- Java中实现多线程相对于其他语言具有独特的优势。
- 垃圾回收
- 垃圾收集机制(Garbage collection)
- 什么是垃圾?
无任何引用的对象占据的内存空间
C/C++是由程序员负责回收无用内存,
java中程序员无法控制和干预,只能由系统决定什么时候回收垃圾
- 什么是垃圾?
- 垃圾收集机制(Garbage collection)
关键字
关键字 | 描述 |
---|---|
abstract | 抽象方法,抽象类的修饰符 |
assert | 断言条件是否满足 |
continue | 不执行循环体剩余部分 |
default | switch语句中的默认分支 |
do-while | 循环语句,循环体至少会执行一次 |
double | 64-bit双精度浮点数 |
else | if条件不成立时执行的分支 |
enum | 枚举类型 |
extends | 表示一个类是另一个类的子类 |
final | 表示定义常量 |
finally | 无论有没有异常发生都执行代码 |
float | 32-bit单精度浮点数 |
for | for循环语句 |
goto | 用于流程控制 |
if | 条件语句 |
implements | 表示一个类实现了接口 |
import | 导入类 |
implements | 测试一个对象是否是某个类的实例 |
int | 32位整型数 |
interface | 接口,一种抽象的类型,仅有方法和常量的定义 |
long | 64位整型数 |
native | 表示方法用非java代码实现 |
new | 分配新的类实例 |
package | 一系列相关类组成一个包 |
private | 表示私有字段,或者方法等,只能从类内部访问 |
protected | 表示保护类型字段 |
public | 表示共有属性或者方法 |
return | 方法返回值 |
short | 16位数字 |
static | 表示在类级别定义,所有实例共享的 |
strictfp | 浮点数比较使用严格的规则 |
super | 表示基类 |
switch | 选择语句 |
while | while循环 |
volatile | 标记字段可能会被多个线程同时访问,而不做同步 |
void | 标记方法不返回任何值 |
try | 表示代码块要做异常处理 |
transient | 修饰不要序列化的字段 |
throw | 抛出异常 |
this | 调用当前实例或者调用另一个构造函数 |
synchronized | 表示同一时间只能由一个线程访问的代码块 |
JDK和JRE
- JDK叫做java开发工具集。包括java的编译环境、运行环境、调试环境,以及基础类库。
- JRE叫做java运行环境。包括虚拟机、核心类库,以及链接文件。
JDK包含JRE
数据类型、变量、常量
数据类型
- 数据类型是一种易于人类阅读的标记,用来表示计算机内存的特定用法。
- 在程序中使用时,数据类型规定所使用内存的大小以及在该内存中可存放的有效值。
- Java是一种强类型编程语言,这意味着在Java程序中用到的所有变量都必须有明确定义的数据类型
基本数据类型
数值型
类型 | A占用存储空间 | 范围 |
---|---|---|
byte | 1字节(8位) | |
short | 2字节(16位) | |
int | 4字节(32位) | |
long | 8字节(64位) | |
float | 4字节(32位) | |
double | 8字节(64位) |
字符型
- char型数据用来表示通常意义上“字符”。
- 字符常量为用单引号括起来的单个字符。
- Java字符采用Unicode编码,每个字符占两个字节。
- ‘A’的编码是:65 依次类推
- ‘a’的编码是:97 依次类推
- Java语言中还允许使用转义符‘\’来将其后的字符转变为其它的含义。例如’\n’,’\t’。
boolean
- boolean类型适于逻辑运算,一般用于程序流程控制。
- boolean类型数据只允许取值true或false,不可以0或非0的整数替代false和true ,这点和C语言不同。
- 用法举例:
boolean flag = true;
flag = 5 > 3;
- 用法举例:
声明和创建变量
- Java变量是程序中最基本的存储单元,其要素包括数据类型,变量名和变量值。
- Java程序中每一个变量都属于特定的数据类型,在使用前必须对其声明,声明格式为:
数据类型 变量名,变量值; - 变量其实是内存中的一小块区域,使用变量名来访问这块区域。
变量的初始化
- 声明变量后,应该对变量进行初始化(养成习惯)
- 初始化的语法:
数据类型 变量名 = 初始值;
- 比如:
int i = 0;
等同于:
int i;
i = 0;
- 比如:
变量的内存组织方式
常量
Java的常量值用字符串表示,区分为不同的数据类型。
- 如整型常量123
- 实型常量3.14
- 字符常量’a’
- 逻辑常量true、false
- 字符串常量”helloworld”
注意:区分字符常量和字符串常量。
Java浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F。
我们也可以给常量命一个标示符名
语法如下:
- final 数据类型 标示符 = 常量值;
符号常量声明的时候必须赋值
- 在整个程序中不能改变不能重新赋值
为什么使用常量
- 使用符号常量的好处是:
- 含义清楚。如上面的程序中,看程序时从PRICE就可知道它代表价格。
- 在需要改变一个常量时能做到“一改全改”。例如在程序中多处用到某物品的价格,如果价格用常数表示,则在价格调整时,就需要在程序中作作出修改,若用符号常量PRICE代表价格,只需改动一处即可。
标识符
- Java标识符命名规则:
- 标识符由字母、下划线“_”、美元符“$”或数字组成。
- 标识符应以字母、下划线、美元符开头。
- Java标识符大小写敏感,长度无限制。
- “见名知意” 。
- 约定俗成的规则
java环境变量配置
什么是环境变量
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。
环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。
可以在用户变量和系统环境变量设置
区别: 用户变量只能是当前登录的用户才有效果
系统变量是你电脑上的全部用户都可以使用
第一步:设置JAVA_HOME变量
JAVA_HOME的值是你安装java的目录路径
比如我的java安装路径 D:\java\jdk1.8.0_45
设置:
变量名:JAVA_HONE
值:D:\java\jdk1.8.0_45
第二步:设置classpath变量
设置
变量名:classpath
值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tooles.jar
注意:一定要在最前面加上 .; 表示在当前路径下查找
第三步:设置Path变量 (环境变量有Path变量,只需要在后面添加值即可)
设置:
变量名:Path
值: ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(添加到最后面,注意分号)
dt.jar和tools.jar是两个java最基本的包,里面包含了从java最重要的lang包到各种高级功能如可视化的swing包,是java必不可少的。
而path下面的bin里面都是java的可执行的编译器及其工具,如java,javadoc等,你在任意的文件夹下面运行cmd键入javac,系统就能自动召见java的编译器就是归功于这个环境变量的设置
rt.jar是JAVA基础类库,dt.jar是关于运行环境的类库,tools.jar是工具类库
把javac和java命令添加到鼠标右键运行
最常用的方法就是在java文件上右键打开方式选javac.exe打开这个java文件,如果没有语法错误,会生成一个XXX.class文件
但是有两个问题:
- 当这个java文件有错误的时候,右键用jacac.exe打开会出现cmd窗口,但是它会马上关闭,可以说是一闪而过,我们看不到错误信息。
- 如果我们编译通过了,然后还要右键那个class文件,然后用java.exe打开,这样很麻烦。
所以我推荐下面这种方法
不是简单的用java和javac命令打开
这样我们就不用每次都进入cmd然后进去到java文件所在路径,然后在输入javac xxx.java 编译 和java xxx运行了
直接鼠标右键 单击 编译并运行 就可以直接编译并且输出结果。如果有错误,也会显示完整错误信息,不会一闪而过。
- 新建runJava.txt,改后缀为bat,用记事本打开,复制以下代码到这个文件中 然后保存并把这个文件放在一个不经常动的地方
我放在了F盘的java文件夹下
@ECHO OFF
cd %~dp1 %转到当前目录下%
IF EXIST %~n1.class ( %如果有xxx.class 则执行 删除命令,将原来旧的class文件 %
DEL %~n1.class
)
ECHO Compiling %~nx1 %在控制台显示 Compiling xxx.java%
javac -d . %~nx1 %执行javac命令 -d 参数的意思是 指定放置生成的类文件的位置 . 的意思是放在当前目录下 %
@ECHO OFF
IF EXIST %~n1.class ( %如果存在xxx.class 说明编译成功 则执行java命令 %
ECHO ---------Out----------
java %~n1 %执行java命令%
)
pause
- 添加到鼠标右键:新建java.txt文件,改后缀为reg,用记事本打开 复制以下代码到文件中
说明:@=”\”F:\Java\runJava.bat\” \”%1\”” 这一行需要改成第一步中runJava.bat所在文件夹目录
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\java]
@="编译并运行"
[HKEY_CLASSES_ROOT\*\shell\java\Command]
@="\"F:\\Java\\runJava.bat\" \"%1\""
然后双击这个文件,将这个键值添加到注册表中。
注意:这里涉及到改注册表,有风险,如果信得过我,只管点就是,我就是这个做的。
可以进入我的百度贴吧查看详情
百度百科
相关文章
- 暂无相关文章
用户点评