1、JAVA程序设计基础 程序设计语言 程序概述 软件开发:制作软件的过程 软件:一系列按照特定顺序组织计算机的数据指令集合。 系统软件:windows 2007 2010 xpunix linux MAC ISO Android dos系统的鼻祖第一个操作系统 应用软件:QQ 优酷客户端微信客户端 APP 软件使用:1、命名行的形式 2、图形化界面 程序员了解和熟练使用命令行操作: Dos操作:命令行 进入dos系统两种方式: 1、开始输入cmd 回车进入 2、win+r 输入cmd 回车进入(进入运行窗口)
2、 Dos命令: 1、 切换到磁盘的根目标(C: D: F: ) 2、 切换到磁盘的目录 cd 目录名称 cd .当前目录 cd .. 上一层目录 cd /切换到根目录 3、 显示目录文件信息 dir 4、 写入文件内容 Echo内容>>文件名称 (追加写入) Echo内容>文件名称 (覆盖写入) 5、 在屏幕上显示内容 Echo 内容 Echo %环境变量% 6、 显示文件内容 more 文件 删除文件(不进入回收站) Del 文件名 7、 创建目录 md 目录名称 8、 删除目录 rd 目录名称(只能删除是空目录) 删除非空目录:Rd
3、 /s /q 目录名称 9、 清屏 cls 10、 退出dos exit 开发语言:计算机语言 机器语言:我非常喜欢你 11 汇编语言:依赖以机器语言指令存在 高级语言:面向过程(函数) c语言 面向对象(类方法)Java c++ c# 面向接口/面向用户(框架) 走进java SUN:java的创始公司 Java之父詹姆斯.高斯林 吉祥物:logo 咖啡 Java版本:1.4 1.5 1.6 Oracle:74亿美元 IBM: 下载地址: 1.7 1.8 3个版本套件: JavaME:微小版嵌入式手机(andro
4、id ios) javaSE:标准版(桌面版)做桌面程序 qq(windows C++) javaEE:企业版大型数据应用系统(联通电信电商) 软件使用(java) 计算机语言:java 环境安装: 环境变量:1、在path中加入java的环境 Jre:java runtime environment(java运行环境) Jdk:java development kit(java开发工具) 1.6后集成jre JVM :java运行的位置(java虚拟机)跨平台 下载地址: 安装方式:2种 1、 解压后直接使用的环境 2、 下载.exe 去安装到电
5、脑中 配置环境变量方式2种: 1、 临时的环境变量 set 环境变量名称=值 2、 永久环境变量设置 在系统中设置 path path=D:\jdk1.7.0_09\bin;path自身的值 classpath类库的位置(java执行使用的就是类库的位置) classpath=.;D:\jdk1.7.0_09\lib;D:\jdk1.7.0_09\jre\lib\rt.jar; JAVA_HOME:D:\jdk1.7.0_09 编程helloworld小程序步骤: 1、 编写源程序(人能看懂) 文件名是xxxx.java 2、 使用javac编译源程序生成
6、字节码文件(机器能看懂) Javac xxxx.java 3、 使用java解释执行字节码文件(机器想看看) Java xxxx 语言基础 开发工具: notepad记事本editplus IDE集成开发环境:eclipse myeclipse Java中都可以存在什么东东 注释 关键字 标识符 常量 变量 方法/函数 运算符 注释 不被程序所执行 作用:解释说明 存在形式: 单行注释://单行内容 多行注释:/* 多行注释内容 */ 文档注释:/** 文档注释内容 */ 单行和多行一般是给程序员自己看的组员协调工作
7、文档注释一般给客户(甲方)做软件使用说明书(以供二次开发) 注释和代码比例 6:4 (6指的是注释内容) 注意:多行注释不可以在嵌套多行注释但是可以有单行。 配置eclipse的jre环境: 在window 最后一项 java install jre add 标识符 是用来表示类中内容的名称: 类名、方法名(函数名)、变量名称、包名等等 命名规范: 1、 是以任意的字母、数字、下划线_ 、美元$组成 2、 不能以数字开头 3、 不能是关键字 4、 严格区分大小写 关键字 在java中有特殊含义的单词。 常量: 不能改变的值,
8、就是常量 整数常量12 13 4354654 小数常量 23.5 13.14 布尔常量 true真 false假 字符常量'a'要么存一个汉字要么存一个字母 字符串常量"我是jdk1.7的类库""a" null 没有 整数: 表现形式: 十进制默认的最大值是9 遇到10进一位 二进制最大值是1 遇到2进一位 十六进制数最大值是15(f)遇到16进一位(0x11) 1,2,3,4….9,a,b,c,d,e,f 八进制数最大值是7 遇到8进一位 (01101) 其他进制数及十进制数的转换的过程: 十进制数转换成其他进制数:
9、 变量 存储相同数据类型的容器 变为主。 数据类型 指的就是变量的类型。 基本数据类型(4类8种) 整型(默认型 int) byte字节型1个字节(8位) short短整型2个字节 (16位) int 整型4个字节 (32位) long长整型8个字节 (64位) 在数字后面需要加L l才能是long 否则还是int型 数值型(浮点型)(默认型是double) float单精度 f F double双精度 D d 字符型 char'' 2个字节汉字占2个字节 boolean型(布尔型) boolean: true
10、 false 引用数据类型(复杂数据类型) 数组、类、接口 Java是强类型语言:在定义变量的时候必须声明是声明类型的。 Java类型之间的转换: 存在于不同的类型之间想进行赋值操作,必须通过类型转换: 1、 隐式转换(自动转换) 当数据类型占用的空间由小向大转换时,隐式转换,因为不能产生数据丢失。 2、 显示转换(强制转换) 当数据类型占用的空间由大向小转换时,显示转换,因为可能产生数据丢失。 小数据类型 x = (小数据类型)大类型的变量; Byte short int long float double从左到右自动 字符串和任何值相加都等于字符串
11、 运算符 算数运算符:+ - * % / ++ -- / 取整当除数和被除数都为整数时表示取整 当除数和被除数其中有一个为浮点型那么就是除法 + 如果存在字符串做加法那么代表字符串连接操作 ++把变量加1后赋值给自己(x=x+1) 对于参加运算 ++在前和在后就不一样 在变量前 ++x x先自加再运算 在变量后 x++ x先运算再自加 -- 赋值运算符:= += -= *= /= %= 转义字符:\n \t 比较运算符:> < >= <= == != (数值型) 逻辑运算符:&&
12、 || ! (boolean) &&只要有一个为false 那么表达式就是false 1/2 true false true true false false false false ||只有要一个为true 那么表达式的结果就是true 1/2 true false true true true false true false 短路现象: && || 具有短路特征对于&& 第一个表达式为false 第二个不做执行直接的结果就是false 对于||而言第一个表达式为true 第二个不做执行直接的结果就是true
13、非短路:& |
位运算符:& | >> <<
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
y = x<
14、1条); 2、 if(表达式(boolean 逻辑运算比较运算)){ 执行部分1(1条); 执行部分2; ……… 执行部分n; } public static void main(String[] args) { int x = 100; int y = 200; System.out.println("和是" + (x + y)); if (x > y) { System.out.println("我被执行了"); System.out.println("我是大坏蛋......."); } } 3、如果条件成立执行结果1 如果不成立执行结果2 if(条
15、件表达式){ }else{ } double w = 10; if(w>15){ System.out.println("穿西服......"); }else{ System.out.println("穿棉服......"); } 3、 如果成立执行结果1 否则判断第二个是否成立成立执行结果2 依次类推 选择语句 switch(值){ case 值1: 执行1; case 值2: 执行2; …… Default: 执行n; } Switch后的值都可以是什么:int 枚举 String(jdk1.7之后才支持) 执行特点:穿透式执行(
16、只要遇到及之匹配的case值那么就从这个位置依次执行,直到遇到break然后就跳出switch) 刚才分数优秀 循环语句 重复的去执行某段代码: For For(表达式1; 表达式2; 表达式3){ 执行体部分; } 表达式1:初始化只执行1次 表达式2:循环的条件 true执行执行体部分 false 跳出循环 表达式3:改变2的值 int sum = 0; for(int i=1;i<=100;i++){ sum=sum+i; } System.out.println(sum); While While(循环条件){ } int i = 1;
17、 int sum = 0; while(i<=10){ sum+=i; i++;//i=i+1 } System.out.println(sum); Do{ }while() 要执行do后的代码。不管条件是否成立都执行1次 Break continue Break switch中跳出switch选择 if while结束循环体 continue 结束本次循环进入下一次循环 1、 使用for while 完成下面问题 求100以内所有偶数的和(能被2整除的数就是偶数) 2+4+6+……+100 2、 嵌套 函数 定义:一段功能代码的集合,函数都代
18、表特定的功能求两个数的最大值 作用:提高代码的复用性函数就可以重复使用 组成:访问修饰符、返回值、函数名称、形参列表、方法体 理解:奶牛:输入草输出奶 返回值:void 没有返回值 返回值类型:一定要写return 类型一定要及返回值类型 形式参数:确定 函数重载:在一个类中(class),函数名称相同,形式参数不同(个数不同,类型不同)的函数间构成函数的重载 数组 数据类型中的一种,是引用数据类型(复杂类型就是基本数据类型的集合)。 定义:它可以存多个相同数据类型、存储相同数据类型的容器。 Int x=1; int[] 书写规范: int[] 变量名称
19、new int[长度]; 数据类型[]变量名称={值1,值2,,,,,,值n}; //值要及数据类型一致 int[] x2 = new int[]{1,2,3,4,5}; 数据操作: 数组的长度: 数组名称.length 赋值和取值 对于数组的操作我们通过数组下标去取(索引)数组[n] 数组下标索引范围:[0 ,数组的长度-1] int x[] = new int[100];//100数组的长度 [] 默认值都是0 int x1[] = {100,200,300,400,500,600};//长度固定值也固定 int[] x2 = new int[]{1,
20、2,3,4,5};
//
System.out.println(x1.length);
System.out.println(x1[5]);
System.out.println("fdfdfds");
x1[x1.length-1]=1000;
System.out.println(x1[5]);
遍历数组
遍历就是对数组中值进行访问:范围是0-数组长度-1 那么 0
int x3[] = new int[5];
//10 11 12...14
for(int i=0;i 21、ut.println(x3[1]);
100
110
12
13
14
编写一个函数:输入一个任意数组,打印这个数组中所有的值
printArray()
public static void printArray(int[] x){
for(int i=0;i 22、
if(cheng_max 23、r(int i=0;i 24、t key){
int v = -1;
for(int i=0;i 25、k+1));
}
排序
选择、冒泡、希尔、快排、堆等等。
选择排序
依次比较它和后面的所有数,如果这个数大于后面的数那么就交换位置。比较一轮之后这个位置就是最小值。
23 45 33 18 19 30 4
public static void sort1(int[] x) {
for (int j = 0; j < x.length - 1; j++) {
for (int i = j + 1; i < x.length; i++) {
if (x[j] > x[i]) {
// 交换位置
int t = x[j];
x[j] = x[i] 26、
x[i] = t;
}
}
}
// 输出结果
ArraysTest001.printArray(x);
}
冒泡排序
相邻的两个数进行比较。如果第一个数大于第二个数,那么就交换位置,比较一轮后最后那个值就是最大值。
23 45 33 18 19 30 4
for(int j=0;j






