1:什么是程序
程序是为了模拟现实世界,解决现实的问题而使用计算机语言编写的一系列指令的集合
a:系统程序: 如 操作系统 b:应用程序:微信 支付宝 百度地图 美颜
2:java 的发展历程
1995年 由sun公司( 斯坦福大学网络公司 ) 在家电(电子)控制程序 由 james godling(詹姆斯-高林斯)带领团队开始研发一门语言 oak(像树) javahot 浏览器 1996 java1.0 2004 java1.5-->java5 2009 被 oracle 收购 2014 java1.8-->java8
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
3: java 运行机制:
程序常见的运行机制
a: 编译执行 b:解析执行
java 运行机制是介于 编译执行和解析执行之间的: 源码--》字节码 编译 字节码 --》不同平台的 jvm 上去解析执行
3:JVM (java virtual machine) java 虚拟机
4: JRE (java runtime Environment) java的运行环境
5:JDK(java developement kit) java的开发工具
4:jdk 的安装
1:设置 jdk-8u40-windows-x64.exe的兼容性和运行权限 在安装软件上 : 右键-> 属性 -》兼容性选项卡 2:双击运行 3:选择安装路径的时候: 不要选 中文和带特殊符号的路径 目录结构不要太深和复杂 一般建议在某盘符一 二级目录即可
我的电脑- 》右键-》高级系统设置 -》环境变量 -》系统环境变量
4:配置环境变量:
第一种方式:
配置jdk 的环境变量:
我的电脑-》右键-》高级系统设置-》环境变量-》
系统环境变量--》path -》编辑
新建:C:\Program Files\Java\jdk1.8.0_40\bin
上移到path的最上面位置
2: classPath: 运行字节码程序的位置 默认是当前路径 ./
第二种方式:
1:配置一个 JAVA_HOME: 第一种方式:C:\Program Files\Java\jdk1.8.0_40\
2: path : %JAVA_HOME%\bin
5:类的定义和使用
java application 程序的最小执行单位:class
class 类名{
}
java application 入口方法:
public static void main(String[] args){
}
6: java 源文件的命名
注意: 一个 java源文件中可以存在多个 class 类
但最多只能存在一个 public 的 class 类
如果一个 java源文件中存在一个public 的 class 类 那么
源文件名必须和public 的 class 类名保持一致
javac 源文件名 如 javac HelloWorld.java 表示把源文件 HelloWorld.java 编译成字节码文件
java 类名 如 java HelloWorld 表示去执行 HelloWorld类 找 HelloWorld类的入口方法运行
javadoc 源文件名 如 javadoc HelloWorld.java 表示根据 /** 文档注释* / 生成源码的帮助文档
7:类的注释
// 单行注释 /* */ 多行注释
/** 文档注释 */
8: java的输入与输出
输出 : System.out 输出流 System.out.print() System.out.println()
输入:
System.in 输入流
java.util.Scanner Scanner 类是一个控制台
Scanner sc=new Scanner(System.in);
sc.nextInt()
.nextFloat()
.nextDouble()
....
next(); 碰到空格就结束不往后取内容
nextLine(); 碰到换行符就结束不往后取内容
9:包 package
package 包名; 包名都是小写 一般是公司的组织机构代码(域名 反写) 如: com.baidu. 作用:和操作系统的文件夹对应的 一般要求把完成某个功能的所有代码放同一个包 可以减少团队开发时候 类的命名冲突问题
定义:package 包名.子包名.xxxx
其他包要使用需要导入这个类:
import 包名.子包名.xxxx.类名;
import 包名.子包名.xxxx.*;
10: 程序的构成
程序=数据结构+算法
数据结构 =数据类型 + 变量
算法= 操作符 + 流程控制语句
11: java的变量
变量:存储数据的空间(内存)
a:申明变量 1:数据类型 变量名; 变量名=值 2:数据类型 变量名=值;
标识符的命名规范: 标识符(变量名 类名 方法名 属性名..) 1:构成只能是 : 字母 数字 $ _ 2:首字母不能是:数字 3:不能是java的关键字(都是小写) synchronized (public class static void byte short int long... )也不能是java 的保留字(goto const)
约定: 1:见名知意 name age 2:驼峰式 或 _ 命名 studentName student_name 3:类名 首字母 大写 Person 4:包名全部小写 com.qf 5:方法名 动词 首字母 小写 drowMoney() 6:变量 属性名 名称 首字母 小写 name
12:java的数据类型
1:基本类型(8大基本类型) 2: 引用类型(类 接口 数组)
a:整数相关
byte 1个字节 8bit -2^7 到 2^7-1 包装类 :Byte
short 2个字节 16bit -2^15 到 2^15-1 包装类 : Short
int 4个字节 32bit -2^31 到 2^31-1 包装类 :Integer
long 8个字节 64bit -2^63 到 2^63-1 包装类 :Long
b:小数相关(非精确的类型)
float 4个字节 32bit 包装类 :Float
-3.4e38 到 -1.4E-45
1.4E-45 到 3.4e38
double 8个字节 64bit -1.4e308 到 1.4e308 包装类 :Double
c:字符
char 2个字节 16bit 0- 65535 包装类 :Character
char 采取 unicode编码包含全球语言字符集
常见unicode编码
空格: 32
0-9: 48-57
A-Z: 65-90
a-z: 97-122
d:布尔 1个字节
boolean 取值 true false
字母量值 整数默认是 int 字母量值 小数 默认是 double
数据类型的转换: 1:自动转换 a:可以兼容的类型 byte b=10; b:把低的数据类型 赋值高的数据类型 byte b=10; int num=b;
byte short char -->int -> long
| |
v v
float -> double
2:强制类型转换 (数据类型) 变量名;
强制类型转换可能产生:
1:数据溢出 int num=128; byte b=(byte)num;
2:精度的丢失 double d1=3.14; int num=(int)d1;
注意:boolean 类型不和其他基本类型做运算也不转换
13:java操作符
1:算术运算
+- * / % 10/3=3 10/3.0=3.33333334 10%3=1
++ --
int a=10; int b=++a; // a=a+1; b=a; a=11 b=11
int a2=10; int b2=a2++; // b2=a2 a2=a2+1 b2=10 a2=11
2:比较运算 == != <> > < >= <=
3:逻辑运算 && 与 || 或 !非
A && B AB 同时 true 才能返回true 若Afalse B不需要执行 直接返回 false 短路
A || B A B 同时 false 才能返回false A B只要一个是 true 就可以返回true 若 A true B不需要执行 直接返回 true 短路
4:位运算 转二进制 & 按位与 | 按位或 ^ 异或 不同true << 左移位 n 乘 2^n
、>> 右移位 n 除 2^n
5:三目运算 表达式?返回值1:返回值2
14:java的流程控制语句
1:顺序结构
2:分支结构
a: if else结构分支
if(条件){
条件true要执行的操作;
}
if(条件){
条件true要执行的操作;
}else{
条件false要执行的操作;
}
if(条件){
条件 true 要执行的操作
}else if(){...}
...
else if(){...}
else{
条件 false 要执行的操作
}
条件的嵌套
b: switch分支
switch(变量){ 变量的数据类型:byte short char int jdk1.7和之后的版块可以是 String
case 值1:要执行的操作1; [ break;]
.....
case 值n:要执行的操作n; [ break;]
default:其他情况
}
switch 中 case条件满足后 遇到 break 才能终止运行 所以 一般每个 case后面会配置一个break switch 变量 数据类型: 只能放可以自动转换成 int 的数据类型 byte short char int String(jdk1.7 或之后的版本是支持)
注意其他的类型: long float double boolean不可以作为switch的变量参数
3:循环语句
a: while循环
初始变量=值
while(循环的初始条件){
循环体
}
一般来说 循环体里面都会存在改变循环条件的语句
while 可能执行0次或者死循环(不限次数)
b: 初始变量=值 do{ 循环体 }while(条件);
do while 至少执行一次
c: for for(初始化语句; 循环条件;改变条件语句){ 循环体 }
JAVA_HOME : 指向jdk的安装目录
C:\Program Files\Java\jdk1.8.0_40
path : %JAVA_HOME%\bin
C:\Program Files\Java\jdk1.8.0_40\bin