一,软件开发的常识
1,什么是软件
一系列按照特定顺序组织起来的计算机的数据或者指令
常用的软件:
系统软件:Windows,Mac OS,Linux。。。
应用软件:微信,QQ,一系列的浏览器,一系列的播放器。。。
2,什么是软件开发
软件开发就是使用软件开发工具制作软件的整个过程。
3,软件的出现实现了人与计算机之间的交互
交互方式:
图形化界面:采用图形方式显示操作环境
命令行方式:在控制台中输入相应的指令,计算机根据用户输入的指令完成相应的操作
4,常用的DOS命令行
cd 进入指定的目录
cd.. 退回到上一级目录
cd/ 退回到根目录
盘符: 切换盘符
dir 列出当前目录下所有的文件以及文件夹
cls 清空控制台
md (make directory)新建文件夹
rd 删除指定目录
del 删除指定文件
deltree 删除指定目录下所有的文件以及文件夹【子文件夹】
copy 将一个文件拷贝到另外的目录下
move 剪切
exit 退出
计算机语言:C C++ Java PHP HTML5 Swift VR 大数据 Python。。。
二,Java简介
1,Java的由来
1995年,Sun【Stanford University Network,斯坦福大学网络公司】公司推出的一门高级的编程语言
2,Java语言的体系
J2SE:标准版,Java的核心语法,是
J2EE:企业版,应用于服务器或者Web方向,涉及到JSP,Servlet等,其中三大框架SSH【Struts,负责表示层的显示,Spring,负责对数据库的操作,Hibernate,将数据持久化到数据库】
J2ME:小型版,应用于移动平台软件产品或者小型的电子消费产品,早期的诺基亚,塞班系等。。。
JDK1.5之后,改名JAVASE JAVAEE JAVAME
3,几个标志性的时间
1996年,Sun公司发布了JDK1.0
2006年,Java开源
2009年,Oracle【甲骨文公司】收购了Sun
2010年,Java语言的创始人之一詹姆斯.高斯林从Oracle离职
2011年,Oracle公司庆祝了JDK1.7的推出
2014年,Oracle公司发布了JDK1.8正式版
与Java语言相似的语言:C#,Swift,Python
4,Java语言的特点
跨平台性:通过Java语言编写的应用程序可以在不同的系统平台上运行【一处编写,多出运行】,良好的可移植性
只需要在要运行Java程序的系统上安装一个Java虚拟机【Java语言具有跨平台性,Java虚拟机不具有跨平台性】
三、开发Java程序前的准备工作
【面试题】JDK【Java Development Kit】:Java开发工具包
JRE【Java Runtime Environment 】:Java运行环境
JVM【Java Virtual Machine】:Java虚拟机
JRE:运行环境,包括JVM和Java程序所需的核心类库【如果想要直接运行一个已经开发好的Java程序的话,只安装JRE就可以了】
JDK:是提给程序员使用的,其中包含了Java的开发工具,也包含了JRE,当安装了JDK之后,就不再需要单独安装JRE
三者之间的关系:
JDK>JRE>JVM,使用JDK开发完成的Java程序,交给JRE中的JVM去运行
1.下载JDK
www.oracle.com
java.sun.com
2.安装JDK
3.配置环境变量
用户变量和系统变量的区别:
只是用户变量只对当前用户有效,而系统变量对所有的用户有效【为了减少自己所做的修改对其他用户造成影响的话,可以选择设置用户变量】,我们配置系统变量
%JAVA_HOME%\bin;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Parallels\Parallels Tools\Applications;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\MySQL\MySQL Server 5.5\bin;%CATALINA_HOME%\bin
JAVA_HOME:jdk的安装路径
Path:%JAVA_HOME%\bin;
classpath:适配JDK1.4之前的版本
【面试题】
配置环境变量有何作用?
作用:为了可以在任意的目录下直接访问Java开发工具包【不需要每次=将路径切换到bin目录下】,方便程序的开发
四、Java程序的运行机制
Java程序要经过先编译,后运行的步骤1.编译步骤:不会生成特定平台的机器码,而是生成了一种与平台没有任何关系的字节码,这种字节码文件不是可执行的文件
2.运行步骤:运行中起核心作用的是JVM,JVM可以识别字节码文件
五、编写第一个Java程序【hello world】
工具:记事本,EditPlus,NotePad++,Eclipse,MyEclipse步骤:
a.创建一个后缀名为.java的文件
b.在文件中通过class关键字创建一个类,【类是Java程序的最小程序单元】,格式:public class FirstDemo
c.为了让程序有一个入口,在类中定义一个main函数,格式:public static void main(String[] args)
d.将需要执行的语句写到main函数中
e.使用javac命令在控制台进行编译,格式:javac Java文件名称.java
f.使用java命令在控制台进行运行,格式:java 类名
class FirstDemo111{public static void main(String[] args) {
System.out.println("hello world");
System.out.println("hello world");
System.out.println("hello world");
}
}
需要注意的问题:
a.Java程序必须是以.java为后缀的
b.一个Java文件中可以写多个类,每个类在编译完成之后会生成多个class文件
c.如果一个类被public修饰的话,则这个类的类名必须和Java文件的名字相同,被public修饰的类在同一个Java文件中最多只能出现一次【如果同一个Java文件中所有的类都没有使用public修饰的话,类名和Java文件名之间可以没有任何联系】
Java语言的基础:注释,关键字,标识符,表达式,语句,函数,数组
六、注释
注释的作用:程序员在编写代码时给代码添加的一些解释或者提示,为了提高代码的可读性,为了便于后期可以修改和参考单行注释:
格式://xxxxx
多行注释:
格式:/*
xxxxxxx
xxxxxxx
*/
注意:多行注释不能嵌套【多行注释中不能包含多行注释】
文档注释:
格式:/**
*function:
*author:
*date:
*/
注释是解释性的文本,在运行程序的时候,会被程序跳过,不会对程序的结果产生任何的影响
七、Java编写规则
注意:Java对字母大小写特别敏感【严格区分大小写】a.每条语句后面都是用分号结尾
b.驼峰命名法:在Java中,除了包名,常量之外,其他的命名全部遵循驼峰命名法【不同单词之间通过首字母大写来进行分隔】,例如:FirstDemo大驼峰 firstDemo小驼峰
c.中文和英文:尽量使用通俗易懂的英文,起有意义的命名,例如:download xiaZai
d.要有一定的层次关系【缩进】
八、API文档
九、关键字和标识符
1.关键字在Java语言中,被赋予了特殊含义的英文单词,如:class【定义类】 public【公开的】 static【静态的】 interface 【定义接口】implements【接口的实现】 abstract【抽象】 package【定义包】 import【导包】 synchronized 【同步】等
注意:关键字都是小写的
2.标识符
在Java语言中,由程序员自己定义的一些英文单词
定义一个合法的标识符需要遵循的规则:
a.是由数字,字母,下划线(_)以及美元符($)
b.不能以数字开头 abc1 1abc(不合法)
c.不能使用关键字
d.不能包含空格 abc def(不合法)
e.不能包含除了$之外的其他的特殊符号 @ & *
f.命名遵循驼峰命名法
g.严格区分大小写 abc Abc 两个不同的标识符
十、进制转换
计算机存储数据采用的是二进制1.什么是进制
进制其实就是进位制度,规定好的进位的方法,例如:十进制是逢十进一,二进制是逢二进一
a.常见的进制:十进制【0~9】,二进制【0~1】,八进制【0~7,用数字0开头】,十六进制【0~9,a~f或者A~F,用0x或者0X开头】
b.进制的特点
1>每种进制都有确定的符号集
2>每种进制采用位置表示法,位置不同,表示的数值不同,值不同与他所在位的权值有关
例如:12345-----》1*10^4+2*10^3+3*10^2+4*10^1+5*10^0
c.为什么计算机采用二进制存储数据
采用开关原理,用0和1来表示,计算机运算起来的效率更高
2.进制之间的转换
计算机存储数据的单位:
计算机中表示数据的最小单位:比特【bit---b】,又被称为 位
计算机中处理数据的最小单位:字节【Byte---B】
1B = 8b
KB MB GB TB PB EB...DB
1KB = 1024B
a.十进制----》二进制
转换原理:对于整数,对十进制数除2运算,直到商为0,然后将各个步骤得到的余数倒着写出来
对于小数,整数部分同上,小数部分乘以2取整
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010
b.二进制----》十进制
0110-----》1*2^2 + 1*2^1 = 6
101010----》
c.二进制----》八进制
转换原理:从右往左依次分组,三位为一组,不足时补0,将每一组的二进制转换为十进制,然后从左往右连接起来
010 010 110-----》2 2 6----》0226
d.二进制-----》十六进制
转换原理:从右往左依次分组,四位为一组,不足时补0,将每一组的二进制转换为十进制,然后从左往右连接起来,如果十进制大于10的时候,用a~f的字母表示
1001 0110-----》9 6------》0x96
e.十进制----》八进制或者十六进制
方式一:十进制---》二进制----》八进制或者十六进制
方式二:直接对十进制数除8或者16的运算,直到商为0,倒着取余数
f.八进制或者十六进制-----》十进制
按权展开,相加
3.计算机处理数据的方式
数值是有正负之分的
原码:这个数的二进制表示形式,高位表示符号位,1表示负数,0表示正数
反码:将原码除了符号位之外剩下的各位取反
补码:在反码的基础上,加1
注意:其中,正数的原码,反码以及补码都是同一个【二进制】
反码和补码主要针对负数
以八位为例
110----》0000 0110
10 + (-10) = 0
原码
10 0000 1010
-10 1000 1010
--------------------
1001 0100-------》相加结果很明显不是0,说明计算机处理数据不是通过原码进行的
反码
10 0000 1010
-10 1111 0101
-------------------
1111 1111-----》-1的补码。相加结果很明显不是0,说明计算机处理数据不是通过反码进行的
0000 0001 ----》1000 0001 ----》11111110---》+1 —》1111111
补码
-10的补码:
1111 0101----》+1----》1111 0110
10 0000 1010
-10 1111 0110
-------------------
1 0000 0000-----》0
结论:计算机中存放数据采用的是二进制的补码形式