cd. (change directory)当前目录
cd.. (change directory)可以返回上一级目录
cd\ 返回到当前盘符根目录
dir (directory)查看当前路径下的文件夹和文件内容
date 日期设置命令(Ctrl+z)
time 时间设置命令(Ctrl+z)
cls (clear screen)清屏。
exit 退出命令提示符窗口
F7 查看历史命令,选中之后执行用过的命令
cd /?或cd/? (/表示命令的功能开关)查看cd命令的具体用法
md /?或md/? 查看md命令的具体用法
————————————————
%temp% 打开临时文件夹 . C:\DocumentsandSettings\用户名所在文件夹
… C:\DocumentsandSettings … 我的电脑
\ C盘 appwize.cpl 添加、删除程序
access.cpl 辅助功能选项 Accwiz 辅助功能向导
cmd CMD命令提示符 command CMD命令提示符
chkdsk.exe Chkdsk磁盘检查 certmgr.msc 证书管理实用程序
calc 启动计算器 charmap 启动字符映射表
cintsetp 仓颉拼音输入法 cliconfg SQLSERVER客户端网络实用程序
clipbrd 剪贴板查看器 control 打开控制面板
conf 启动netmeeting compmgmt.msc 计算机管理
cleanmgr 垃圾整理 ciadv.msc 索引服务程序
dcomcnfg 打开系统组件服务 ddeshare 打开DDE共享设置
dxdiag 检查DirectX信息 drwtsn32 系统医生
devmgmt.msc 设备管理器 desk.cpl 显示属性
dfrg.msc 磁盘碎片整理程序 diskmgmt.msc 磁盘管理实用程序
dvdplay DVD播放器 eventvwr 事件查看器
eudcedit 造字程序 explorer 打开资源管理器
fsmgmt.msc 共享文件夹管理器 firewall.cpl WINDOWS防火墙
gpedit.msc 组策略 hdwwiz.cpl 添加硬件
iexpress 木马捆绑工具,系统自带 inetcpl.cpl INTETNET选项
intl.cpl 区域和语言选项(输入法选项) irprops.cpl 无线链接
joy.cpl 游戏控制器 lusrmgr.msc 本机用户和组
logoff 注销命令 main.cpl 鼠标
mem.exe 显示内存使用情况 migwiz 文件转移向导
mlcfg32.cpl 邮件 mplayer2 简易widnowsmediaplayer
mspaint 画图板 msconfig.exe 系统配置实用程序
mstsc 远程桌面连接 magnify 放大镜实用程序
mmc 打开控制台 mmsys.cpl 声音和音频设备
mobsync 同步命令 ncpa.cpl 网络连接
nslookup IP地址侦测器 netstartX 开始X服务
netstopX 停止X服务 netstat-an 命令检查接口
netsetup.cpl 无线网络安装向导 notepad 打开记事本
nslookup IP地址侦探器 narrator 屏幕“讲述人”
ntbackup 系统备份和还原 ntmsmgr.msc 移动存储管理器
ntmsoprq.msc 移动存储管理员操作请求 nusrmgr.cpl 用户账户
nwc.cpl NetWare客户服务 osk 打开屏幕键盘
odbcad32 ODBC数据源管理器 odbccp32.cpl ODBC数据源管理器
oobe/msoobe/a 检查XP是否激活 packager 对象包装程序
perfmon.msc 计算机性能监测程序 powercfg.cpl 电源选项
progman 程序管理器 regedit 注册表
rsop.msc 组策略结果集 regedt32 注册表编辑器
regsvr32/? 调用、卸载DLL文件运行 sapi.cpl 语音
services.msc 本地服务设置 syncapp 创建一个公文包
sysedit 系统配置编辑器 sigverif 文件签名验证程序
sndrec32 录音机 sndvol32 音量控制程序
shrpubw 共享文件夹设置工具 secpol.msc 本地安全策略
sysdm.cpl 系统 syskey 系统加密(一旦加密就不能解开,保护windowsxp系统的双重密码)
services.msc 本地服务设置 sfc.exe 系统文件检查器
sfc/scannow windows文件保护 shutdown 关机命令(详细请在cmd中输入shutdown/?)
taskmgr 任务管理器 telephon.cpl 电话和调制解调器选项
telnet 远程连接程序 timedate.cpl 日期和时间
tourstart xp简介(安装完成后出现的漫游xp程序) tsshutdn 60秒倒计时关机命令
utilman 辅助工具管理器 winver 检查Windows版本
winmsd 系统信息 wiaacmgr 扫描仪和照相机向导
winchat XP自带局域网聊天 wmimgmt.msc 打开windows管理体系结构(WMI)
wordpad 写字板 wuaucpl.cpl 自动更新
wupdmgr windows更新程序 write 写字板
wscript windows脚本宿主设置 wscui.cpl 安全中心
系统版本:windows10
Java语言共有十大特点,分别为:简单性、面向对象、分布性、编译和解释性、稳健性、安全性、可移植性、高性能、多线索性、动态性。
1、简单性:Java语言继承了C++语言的优点,去掉了C++中学习起来比较难的多继承、指针等概念,所以Java语言学习起来更简单,使用起来也更方便。
2、面向对象:Java是一种面向对象的编程语言。
3、分布性:Java设计成支持在网络上应用,它是分布式语言。
4、编译和解释性:Java编译程序生成字节码,而不是通常的机器码,这使得Java开发程序比用其他语言开发程序快很多。
5、稳健性:Java刚开始被设计出来就是为了写高可靠和稳健的软件的。
6、安全性:Java的存储分配模型是它防御恶意代码的主要方法之一。
7、可移植性:Java并不依赖平台,用Java编写的程序可以运用到任何操作系统上。
8、高性能:Java是一种先编译后解释的语言,所以它不如全编译性语言快。但Java设计者制作了“及时”编译程序,这样就可以实现全编译了。
9、多线索性:Java是多线索语言,它可以同时执行多个程序,能处理不同任务。
10、动态性:Java语言设计成适应于变化的环境,它是一个动态的语言。
编译:java到.class,运行:类装载器,jvm【将class文件变二进制文件】,操作系统,硬件平台。
javac编译器工具。
一、JDK
JDK是Java开发工具包,其中包括编译工具(javac.exe)打包工具(jar.exe)等,也包括JRE。
在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。
JDK是整个JAVA的核心,包括了Java运行环境,Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)
JDK安装目录下面有六个文件夹、一个src类库源码压缩包、和其他几个声明文件。其中真正在运行java时起作用的是 bin、include、lib、 jre这四个文件夹。
bin:最主要的是编译器(javac.exe)
include:java和JVM交互用的头文件
lib:类库
jre:java运行环境
关系:JDK包含JRE,而JRE包含JVM
总结:JDK用于java程序的开发,JRE只能运行class而没有编译的功能。
二、JRE
JRE,即Java运行环境,包含JVM标准实现(Jvm虚拟机)与Java核心类库。
单独有JVM不能执行class,因为在解释class的时候JVM需要调用解释所需要的类库lib(jre里有运行.class的java.exe)。在JRE目录里有bin和lib两个文件夹,可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。所以,当写完java程序编译成.class之后,可以把这个.class文件和jre一起打包发给朋友,这样你的朋友就可以运行你写程序了。
总结:JRE 是运行 Java 程序必不可少的,编写好的Java程序必须要JRE才能运行。如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
三、JVM
JVM,即java虚拟机,是java运行时的环境,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行,这就是Java能够“一次编译,到处运行”的原因。
它是整个java实现跨平台的最核心的部分,所有的java程序会先被编译为.class的类文件,该类型文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
总结:可以把JVM理解为是一个虚拟出来的计算机,具备着计算机的基本运算方式,主要负责将java程序生成的字节码文件解释成具体系统平台上的机器指令。
四、三者的联系
JVM不能单独搞定class的执行,解释class的时候JVM需要调用JRE的类库lib。在JRE目录里有两个文件夹bin和lib,可以认为bin里的就是jvm,lib里的则是jvm工作所需要的类库,而jvm和 lib和起来就称为JRE。
利用JDK(调用JAVA API)开发了JAVA程序后,通过JDK中的编译程序(javac)将java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
五、三者的区别
JDK和JRE区别:JDK的bin目录里有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户是不需要的。JDK还有jar.exe, javadoc.exe等用于开发的可执行指令文件。证实了一个jdk是开发环境,而jre是运行环境。
注意: JVM并不代表可以执行class,因为JVM执行.class还需要JRE下的lib类库的支持,尤其是rt.jar。
六、总结
JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
JRE(Java Runtime Environment)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
JVM(Java Virtual Machine)即Java虚拟机,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。
java Helloworld
classpath=
注释是做源代码的解释说明。
//
javadoc,会生成帮助文档
/**
*
*/
多行注释
/*
*/
public class HelloWorld
{
public static void main【方法名】(String[] args【变量名】) //表示定义一个公开的静态的主方法
{
System.out.println("Hello World!");//向控制台输出消息
//方法体
//java语句以“;”分号必须是英文的分号终止
}
}
类体
方法体
类体中不能直接编写java语句【除声明变量之外】
方法 体中可以编写多条java语句
主方法是持续入库,固定编写,sun公司规定。
1. public class 和 class 的区别
一个java源文件当中可以定义多个class
一个java源文件当中public的class不是必须的
一个class会定义生成一个xxx.class字节码文件
一个java源文件当中定义公开的类的话,只能有一个,并且该类名称必须和java源文件名称一致
每一个class当中都可以编写main方法,都可以设定程序的入口,向执行B.class中的main方法: java B,想执行x.class当中的main方法:java x
注意:当在命令窗口中执行java Hello,那么要求hello.class当中必须有主方法。
没有主方法会出现运行阶段的错误:在类B中找不到主方法,请将主方法定义为:
public static void main (string[]args)
案例:定义一个ABC.java
class A{
}
class B{
}
class C{
}
1
2
3
4
5
6
7
8
9
10
11
使用 javac 命令编译之后生成了三个字节码,分别是A.class、B.class、C.class。执行 :javac ABC.java,就会生成三个 .class 文件
通过以上的测试可以得出:一个 java 源文件中可以定义多个 class,并且在编译的时候一
个 class 会对应编译生成一个 class 字节码文件。还有,public 的 class 可以没有。
接下来,在 ABC.java 源代码中继续定义一个“公开的类 D”,请看下图
可以看到,定义公开的类 D 之后,再次编译,编译器报错了。并且提示的错误信息是:
类 D 是公共的,应在名为 D.java 的文件中声明。换句话说在 A.java 文件中定义的公共的类的名字必须是 A,不能是其它名称。也间接说明在同一个 java 文件中公共的类只能有一个(注
意:在同一个 java 文件中类名不能重名)。
通过以上的测试可以得出:如果定义 public class 的类,只能定义一个,并且要求此类名必
须和 java 源文件名保持一致。(这是规则记住就行)。
接下来,在每一个类的类体当中都定义 main 方法,都写上程序的入口,看看是否可以编译和运行:
class A{
public static void main(String[] args){
System.out.println("A...");
}
}
class B{
public static void main(String[] args){
System.out.println("B...");
}
}
class C{
public static void main(String[] args){
System.out.println("C...");
}
}
public class ABC{
public static void main(String[] args){
System.out.println("ABC...");
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
javac ABC.java
随便从一个类中进入入口函数:java A 、java B
可以看到,在每一个 class 中都可以编写 main 方法,想让程序从哪个入口进去执行则加载该类即可
2. 总结:
通过以上的测试可以得出:任何一个 class 中都可以设定程序入口,也就是说任何一个 class
中都可以写 main 方法(主方法),想从哪个入口进去执行,则让类加载器先加载对应的类即
可,例如:想让 A类中的 main 方法执行,则执行:java A,想让 B 类中的 main 方法执行,则
执行:java B。但实际上,对于一个完整的独立的应用来说,只需要提供一个入口,也就是说
只需要定义一个 main 方法即可。
还有,在实际的开发中,虽然一个 java 源文件可以定义多个 class,实际上这是不规范的,
比较规范的写法是一个 java 源文件中只定义一个 class。
Java标识符有哪些?
1、标识符:在java语言中,标识符常用来给类、对象、变量、方法、接口、自定义数据类型等命名的。
2、标识符命名规则:标识符由任意顺序的大小写字母(a-z,A-Z),数字(0-9)下划线(_)和美元符号($)组成。
并且标识符不能以数字开头,
标识符是区别大小写的,
没有长度限制,
不能把java关键字作为标识符。
例如:合法的:name,my_name,_21,$money,不合法的:class,2name,name#age,a+b,
3、需遵循的规范:
(1)、包名:所有字母一律小写。如:com.abc.demo。
(2)、类名和接口名:每个单词的首字母大写,其余小写。如:StudentDemo,HelloWorld。
(3)、常量名:所有字母都大写,单词间以下划线(_)连接。如:DAY_OF_MONTH。
(4)、变量名和方法名:第一个单词首字母小写,从第二个单词开始每个单词首字母大写。即驼峰式命名法。如:chineseScore,getTotalMoney()。
(5)、在程序中,应尽量使用有意义的英文单词来定义标识符,即见名知义,这样便于阅读。如:password表示密码,name表示姓名等。
4、java标识符有哪些不合法?
提示:标识符命名时,切记不能以数字开头,也不能使用任何 Java 关键字作为标识符,而且不能赋予标识符任何标准的方法名。
使用标识符时一定要注意,或者使用关键字,或者使用自定义的非关键字标识符。此外,标识符可以包含关键字,但不能与关键字重名。
例如以下合法与不合法标识符。
不合法的标识符:1m、2.com、c*om、for、if 等。
java标识符命名规范之驼峰命名法
1.什么是驼峰命名法?
1.1 前提
大家都知道骆驼有两个驼峰,较高的那一个驼峰有可能靠经头部,也有可能靠近尾部。
因此就提出了大小驼峰命名法
大小驼峰的根本区别就在于首单词的首字母是否大写,若大写,则是大驼峰命名法,
若是小写,则是小驼峰命名法,
1.2 大驼峰命名法
大驼峰在前,首单词的首字母为大写字母,也就是说构成标识符的所有单词的首字母都大写,其余部分(单词的非首字母部分)都小写。
1.3 小驼峰命名法
小驼峰在前,首单词的首字母为小写字母,也就是说构成标识符的首单词的首字母小写,其他单词的首字母都大写,且除了单词的首字母外的其他部分都小写。
2.为啥要用驼峰命名法?
加强代码的可读性
/*在一个学期中,有期中考试,期末考试,如果都像下面这般定义*/
double score1=99,score2=98;
//如何辨别score1和score2中哪个是期中考试成绩的变量还是期末考试的变量呢?显然不好区分
//而用了如下所示的小驼峰命名法,会发现很容易知道它代表的含义及其作用
double midScore=99,finalScore=98;
//mid为中间的意思,final为最终的,那么midScore的含义为中间的成绩即期中成绩,finalScore的含义为最终的成绩即期末考试,这样是不是很容易区分啦!!!
1
2
3
4
5
6
3.如何使用驼峰命名法
a.小驼峰命名法的使用范围
变量名的命名、函数名(方法名)的命名等
b.大驼峰命名法的使用范围
类名的命名、接口名、命名空间等
关键字一律用小写字母标识,按其用途划分为如下几组。
(1)用于数据类型。
用于数据类型的关键字有 boolean、byte、char、 double、 float、int、long、new、short、void、instanceof。
(2)用于语句。
用于语句的关键字有break、case、 catch、 continue、 default 、do、 else、 for、 if、return、switch、try、 while、 finally、 throw、this、 super。
(3)用于修饰
用于修饰的关键字有 abstract、final、native、private、 protected、public、static、synchronized、
transient、 volatile。
用于方法、类、接口、包和异常的关键字有 class、 extends、 implements、interface、 package、import、throws。
还有些关键字,如 future、 generic、 operator、 outer、rest、var等都是Java保留的没有意义的关键字。 [4]
另外,Java还有3个保留字:goto、const、null。它们不是关键字,而是文字。包含Java定义的值。和关键字一样,它们也不可以作为标识符使用。
关键字 | 含义 |
abstract | 表明类或者成员方法具有抽象属性 |
assert | 断言,用来进行程序调试 |
boolean | 基本数据类型之一,声明布尔类型的关键字 |
break | 提前跳出一个块 |
byte | 基本数据类型之一,字节类型 |
case | 用在switch语句之中,表示其中的一个分支 |
catch | 用在异常处理中,用来捕捉异常 |
char | 基本数据类型之一,字符类型 |
class | 声明一个类 |
const | 保留关键字,没有具体含义 |
continue | 回到一个块的开始处 |
default | 默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现 |
do | 用在do-while循环结构中 |
double | 基本数据类型之一,双精度浮点数类型 |
else | 用在条件语句中,表明当条件不成立时的分支 |
enum | 枚举 |
extends | 表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口 |
final | 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量 |
finally | 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 |
float | 基本数据类型之一,单精度浮点数类型 |
for | 一种循环结构的引导词 |
goto | 保留关键字,没有具体含义 |
if | 条件语句的引导词 |
implements | 表明一个类实现了给定的接口 |
import | 表明要访问指定的类或包 |
instanceof | 用来测试一个对象是否是指定类型的实例对象 |
int | 基本数据类型之一,整数类型 |
interface | 接口 |
long | 基本数据类型之一,长整数类型 |
native | 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的 |
new | 用来创建新实例对象 |
package | 包 |
private | 一种访问控制方式:私用模式 |
protected | 一种访问控制方式:保护模式 |
public | 一种访问控制方式:共用模式 |
return | 从成员方法中返回数据 |
short | 基本数据类型之一,短整数类型 |
static | 表明具有静态属性 |
strictfp | 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 |
super | 表明当前对象的父类型的引用或者父类型的构造方法 |
switch | 分支语句结构的引导词 |
synchronized | 表明一段代码需要同步执行 |
this | 指向当前实例对象的引用 |
throw | 抛出一个异常 |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
transient | 声明不用序列化的成员域 |
try | 尝试一个可能抛出异常的程序块 |
void | 声明当前成员方法没有返回值 |
volatile | 表明两个或者多个变量必须同步地发生变化 |
while | 用在循环结构中 |
字面值
/*
关于字面值:
*字面值:
-10、100
-3.14
-‘a’
-true\false
字面值就是数据
*字面值是java源程序的组成部分之一,包括标识符和关键字都是java源程序的组成部分
*数据在现实世界当中是分门别类的,所以数据在计算机编程语言当中也是由类型的
-10、100 属于整型字面值
-3.14 属于浮点型字面值
-true、false 属于布尔型字面值
-“abc”、“中国人”属于字符串型字面值
-‘A’、‘人’ 属于字符型字面值
*注意:
java语言中当中所有的字符串型字面值必须使用双引号括起来,双引号是半角。
java语言中当中所有的字符型字面值必须使用单引号括起来,单引号是半角。
*/
public class ConstTest01{
public static void main (String[] args){
System.out.println("abc");
System.out.println("最近你过得怎么样");
System.out.println(10);
System.out.println(100);
System.out.println(true);
System.out.println(3.14);
System.out.println('3.14');
System.out.println('ABC');
//编译报错,应为单引号中只能存放单个字符,属于字符型字面值。
//100是一个字面值,是一个整数型数值,那么既然是数据储存在内存中,必定会占用一定的内存空间。
System.out.println(false);
System.out.println('A');
System.out.println('人');
System.out.println(1111100);
System.out.println(1111100);
System.out.println(1111100);
System.out.println(1111100);
}
}
java变量是程序中最基本的存储单元,其包括变量名、变量类型、作用域。java程序中每一个变量都属于特定的数据类型,在使用前必须对其进行声明。
如:int a = 100;
float f =23.3f;
String 是=“hello”;
—
一、变量的概念和分类
1、概念:本质上来说变量是内存中的一小块区域,通过变量名来访问这块区域。因此,使用每一个变量前必须要先申请(声明)然后必须对其进行赋值,才能使用
这块区域的大小取决于 声明的数据类型为哪一类
2、分类:
java中没有无符号的数
按照所属的数据类型分:
基本数据类型(在栈stack中):
整数类型:byte(1字节)、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节)
整数类型默认为int、浮点类型默认为double。
字符型: char(使用Unicode编码、每个字符占两个字节,8个bite一个字节)
布尔型: boolean(与C语言不同,只能取true和false)
引用数据类型(在堆heap中):基础类型之外的
( *若想让基础类型存放在堆中,可以将基础类型包装为一个对象。将会用到基础类型的包装类)
内存分析:基础类型占一块内存,引用类型占两块内存
按照声明的位置来分:
局部变量:方法体内,或者语句块内部定义的变量(局部变量不会默认初始化、必须先声明并赋值)
成员变量:方法体之外,类体中(需要先声明、赋值,若没有先赋值、则默认初始化后再使用)
作用域:在大括号内声明的变量,出了大括号之后就没有人认识了,不能用了。
public class test1 {
static double j = 1.23; //j为成员变量
public static void main (String [] args) {//args为局部变量
int i = 123;
String s = "Hello!";//args、i和s为局部变量
System.out.println("i:" + i);
System.out.println("s:" + s);
System.out.println("j:" + j);
}
}//
1
2
3
4
5
6
7
8
9
10
11
二、基础数据类型的转换
容量小的自动转换为容量大的:
byte,short,char -> int -> long -> float -> double
整数类型默认为int、浮点类型默认为double。
容量大的转换为容量小的:强制类型转换
public class Testconvert1 {
public static void main(String [] args) {
int i1 = 3;
int i2 = 54;
double d1 = (double)(i1+i2);//int被强制转换为double类型
double d2 = (i1+i2)*1.5;//系统自动转换为double类型
float f1 = 3.14f;//必须加f
float f2 = (float)(5.67+d2);//double被强制转换为float
System.out.println("d1:"+d1);
System.out.println("d2:"+d2);
byte b1 = 3;
byte b2 = 6;//系统默认为int类型
byte b3 = (byte)(b1 +b2);//int被强制转换为byte
System.out.println("b3:"+b3);
long l1 = 28932087982l;//必须加 l
long l2 = 234;
double d3 = l1+l2; //小变大 系统自动转换为double类型
long l3 = (long) d3; //强制转换为long类型,会舍去小数部分,而不是四舍五入。
System.out.println("l3:"+l3);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17