资源描述
JAVA程序设计基础
程序设计语言
程序概述
软件开发:制作软件的过程
软件:一系列按照特定顺序组织计算机的数据指令集合。
系统软件:windows 2007 2010 xpunix linux MAC ISO Android dos系统的鼻祖第一个操作系统
应用软件:QQ 优酷客户端微信客户端 APP
软件使用:1、命名行的形式 2、图形化界面
程序员了解和熟练使用命令行操作:
Dos操作:命令行
进入dos系统两种方式:
1、开始输入cmd 回车进入
2、win+r 输入cmd 回车进入(进入运行窗口)
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 /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:微小版嵌入式手机(android 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 去安装到电脑中
配置环境变量方式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编译源程序生成字节码文件(机器能看懂)
Javac xxxx.java
3、 使用java解释执行字节码文件(机器想看看)
Java xxxx
语言基础
开发工具:
notepad记事本editplus
IDE集成开发环境:eclipse myeclipse
Java中都可以存在什么东东
注释
关键字
标识符
常量
变量
方法/函数
运算符
注释
不被程序所执行
作用:解释说明
存在形式:
单行注释://单行内容
多行注释:/* 多行注释内容 */
文档注释:/** 文档注释内容 */
单行和多行一般是给程序员自己看的组员协调工作
文档注释一般给客户(甲方)做软件使用说明书(以供二次开发)
注释和代码比例 6:4 (6指的是注释内容)
注意:多行注释不可以在嵌套多行注释但是可以有单行。
配置eclipse的jre环境:
在window 最后一项 java install jre add
标识符
是用来表示类中内容的名称:
类名、方法名(函数名)、变量名称、包名等等
命名规范:
1、 是以任意的字母、数字、下划线_ 、美元$组成
2、 不能以数字开头
3、 不能是关键字
4、 严格区分大小写
关键字
在java中有特殊含义的单词。
常量:
不能改变的值,就是常量
整数常量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)
其他进制数及十进制数的转换的过程:
十进制数转换成其他进制数:
变量
存储相同数据类型的容器
变为主。
数据类型
指的就是变量的类型。
基本数据类型(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 false
引用数据类型(复杂数据类型)
数组、类、接口
Java是强类型语言:在定义变量的时候必须声明是声明类型的。
Java类型之间的转换:
存在于不同的类型之间想进行赋值操作,必须通过类型转换:
1、 隐式转换(自动转换)
当数据类型占用的空间由小向大转换时,隐式转换,因为不能产生数据丢失。
2、 显示转换(强制转换)
当数据类型占用的空间由大向小转换时,显示转换,因为可能产生数据丢失。
小数据类型 x = (小数据类型)大类型的变量;
Byte short int long float double从左到右自动
字符串和任何值相加都等于字符串
运算符
算数运算符:+ - * % / ++ --
/ 取整当除数和被除数都为整数时表示取整
当除数和被除数其中有一个为浮点型那么就是除法
+ 如果存在字符串做加法那么代表字符串连接操作
++把变量加1后赋值给自己(x=x+1)
对于参加运算 ++在前和在后就不一样
在变量前 ++x x先自加再运算
在变量后 x++ x先运算再自加
--
赋值运算符:= += -= *= /= %=
转义字符:\n \t
比较运算符:> < >= <= == != (数值型)
逻辑运算符:&& || ! (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
非短路:& |
位运算符:& | >> <<
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
y = x<<n左移动相当于乘以2的n次幂
y = x>>n 左移动相当于对2的n次幂取整
使用最快的方法完成 2*8的运算 2<<3
语句
Java顺序语句,选择语句,判断语句,循环语句
顺序语句
;;;;;;;;;;
int x=100;
int y=100;
sysout(x+y);
判断语句
如果那么
1、
if(表达式(boolean 逻辑运算比较运算))
执行部分(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(条件表达式){
}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之后才支持)
执行特点:穿透式执行(只要遇到及之匹配的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;
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、 嵌套
函数
定义:一段功能代码的集合,函数都代表特定的功能求两个数的最大值
作用:提高代码的复用性函数就可以重复使用
组成:访问修饰符、返回值、函数名称、形参列表、方法体
理解:奶牛:输入草输出奶
返回值:void 没有返回值
返回值类型:一定要写return 类型一定要及返回值类型
形式参数:确定
函数重载:在一个类中(class),函数名称相同,形式参数不同(个数不同,类型不同)的函数间构成函数的重载
数组
数据类型中的一种,是引用数据类型(复杂类型就是基本数据类型的集合)。
定义:它可以存多个相同数据类型、存储相同数据类型的容器。
Int x=1; int[]
书写规范:
int[] 变量名称=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,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<x3.length;i++){
x3[i]=10+i;
}
System.out.println(x3[1]);
100
110
12
13
14
编写一个函数:输入一个任意数组,打印这个数组中所有的值
printArray()
public static void printArray(int[] x){
for(int i=0;i<x.length;i++){
System.out.print(x[i]+"\t");
}
}
最大值
public static int getMax(int[] x){
int cheng_max = x[0];//最大的
for(int i=1;i<x.length;i++){
if(cheng_max<x[i]){
cheng_max=x[i];
}
}
return cheng_max;
}
最小值
public static int getMin(int[] x){
int cheng_min= x[0];//最大的
for(int i=1;i<x.length;i++){
if(cheng_max>x[i]){
cheng_max=x[i];
}
}
return cheng_mix;
}
平均值
public static double getAvg(int[] x){
int sum = 0;//最大的
for(int i=0;i<x.length;i++){
sum=sum+x[i];
}
return sum*1.0/x.length;
}
求和
public static int getSum(int[] x){
int sum = 0;//最大的
for(int i=0;i<x.length;i++){
sum=sum+x[i];
}
return sum;
}
通过一个函数完成输入一个数组然后返回这个数组的最大值最小值平均值总和
数组中是否存在某个值(查找)
//返回值就是索引值
public static int findKey(int[] x,int key){
int v = -1;
for(int i=0;i<x.length;i++){
if(key==x[i]){
return i;//把结果返回给调用函数的人结束函数
}
}
return v;
}
主函数调用过程代码:
int[] x4 ={13,134,15,123,133,154};
int find = 13;
int k = findKey(x4, find);
if(k==-1){
System.out.println("不存在这个值"+find);
}else{
System.out.println("存在这个值,位置是:"+(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];
x[i] = t;
}
}
}
// 输出结果
ArraysTest001.printArray(x);
}
冒泡排序
相邻的两个数进行比较。如果第一个数大于第二个数,那么就交换位置,比较一轮后最后那个值就是最大值。
23 45 33 18 19 30 4
for(int j=0;j<x.length-1;j++){
for (int i = 0; i < x.length-1-j; i++) {
if (x[i] > x[i + 1]) {
// 交换位置
int t = x[i];
x[i] = x[i + 1];
x[i + 1] = t;
}
}
}
// 输出结果
ArraysTest001.printArray(x);
多维数组
二维数组为例:
数据类型[][]变量名称=new 数据类型[长度][长度];
数据类型[][] 变量名称={{1,2,3},{4,5,6},{7,8,9}}
快捷键
注释选中行:ctrl+shift+/
快速取消注释行:ctrl+shift+\
修改快捷键:在window下去
Ctrl 回车
sys F
26 / 26
展开阅读全文