----Day1----
上午
JAVA介绍
JAVA:由Sun Microsystems公司于1995年5月推出的JAVA程序设计语言和JAVA平台的总称。JAVA语言是一种可以撰写跨平台(如windows、Mac OS以及其他多种UNIX版本的系统)应用软件的面向对象的程序设计语言。
JAVA版本
JAVA SE:JAVA标准版,是整个JAVA的基础和核心,也是JAVAEE和JAVAME技术的基础,主要用于开发桌面应用程序;
JAVA EE:JAVA企业版,它提供了企业级应用开发的完整解决方案,比如开发网站,还有企业的一些应用系统,是JAVA技术应用最广泛的领域;
JAVA ME:JAVA微缩版,主要应用于嵌入式开发,比如手机程序的开发;
JAVA的特征
跨平台性:JVM
环境搭建
下载JDK
http://www.oracle.com/technetwork/java/javase/downloads/index.html
安装JDK:
环境配置(系统)过程:
第一步:配置“JAVA_HOME”
JAVA-HOME的内容是jdk安装目录,如:D:\Program Files\Java\jdk1.7.0_60,并且后面不带分号
第二步:配置“CLASSPATH”
CLASSPATH,这是一个jar包的调用,写成“.;%JAVA_HOME%\lib”
第三步:检查“PATH”变量是否正确
PATH变量很简单,就是jdk的bin目录的意思。%JAVA_HOME%\bin;
需了解
jdk:java development kit(JAVA开发工具包)。 它是工具程序和文档的集合。
jre:java runtime environment(java运行环境) 它包含了JVM(java虚拟机),java基础类库和支持文件。它是面向使用者的,它是.class文件的运行平台。
ide:integreted development environment(集成开发环境)。eclipse、myeclipse等应用软件就为我们提供了ide 在这个集成开发环境下,可以方便的组织和管理自己写的代码(工作空间+资源管理器)。同时可以通过它提供的一些按钮控件更简单的去调用jdk提供的java工具;
第一个Hello world
记事本编写java代码:
开发步骤:
javac 类名.java
java 类名
开发工具编写java代码:
统一编码方式为utf-8
开发步骤:
创建工程;
创建包;
创建类;
创建主方法;
运行输出;
MyEeclipse开发工具快捷键:
http://blog.csdn.net/master_yao/article/details/50412471
JAVA代码讲解
开发工具
MyEclipse:不开源,收费
Eclipse:开源,免费
IntelliJ IDEA:收费
拓展JAVA命名规范与注释
JAVA规范:
工程命名:首字符大写,采用大驼峰形式;
包名:商业性质.公司名.项目名.功能名 全小写
类的命名:与工程命名一致,采用大驼峰形式;
变量命名:第一个单词的首字母小写,其后每个单词的首字母大写,采用小驼峰形式;
方法命名:与变量命名相同;
注释:
单行注释: //注释内容
多行注释:/* 注释内容 */
文本注释:/** 注释内容 */。这种格式是为了便于javadoc程序自动生成文档;
标识符:
定义:java程序中的类、属性、方法、对象、变量、包等元素都应该有自己的名称,各元素的名称通称为标识符;
定义规则:
由字母、数字、_和$组成;
开头字符必须是字母、下划线或$。
标识符定义采用三原则:见名知义、规范大小写、不可用java保留字;
保留字:
含义:保留字是指java语言规定了特定含义的标识符。对于保留字,用户只能按照系统规定的方式使用,不能自行定义;
数据类型相关的保留字:数据类型、class、interface;
流程控制相关的保留字:if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally;
动作相关的保留字:package、import、throw、throws、extends、implements、this、super、instanceof、new;
其他保留字:true、false、null、goto、const;
需要注意:保留字一律用小写字母表示;
练习(代码部分)
内容1:打印个人信息(包含姓名、年龄、学校、专业、学历、英语等级、住址)
时间:5分钟
讲解:随机抽
答案:
public class Personal {
public static void main(String[] args){
System.out.println("----个人信息----");
System.out.println("-姓名:张三");
System.out.println("-年龄:25");
System.out.println("-学校:西南科技大学");
System.out.println("-专业:软件工程");
System.out.println("-学历:本科");
System.out.println("-英语等级:六级");
System.out.println("-住址:成都市中和镇");
}
}
内容2:使用Scanner输入你的姓名
引入课题内容:Scanner
介绍
java.util.Scanner是java5的新特征,是一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器;
Scanner使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的next方法将得到的标记转换为不同类型的值;
作用
扫描控制台输入
常用方法:
next():查找并返回来自此扫描器的下一个完整标记;
nextLine():此扫描器执行当前行,并返回跳过的输入信息;
nextXXX():next后面跟的都要;
时间:15分钟
讲解:随机抽
答案:
import java.util.Scanner;
public class First {
public static void main(String[] args) {
System.out.println("请输入你的名字");
Scanner sc = new Scanner(System.in);
String user = sc.next();
System.out.println(user+"欢迎来到蜗牛");
}
}
常见问题:
控制台输出乱码 解决:http://bbs.51cto.com/thread-1009032-1.html
单词写错
下午
数据类型
基本数据类型(原始数据类型)
byte
char
short
int
long
float
double
boolean
讲解
float取值为什么是10的38次方
http://blog.csdn.net/shayne_lee/article/details/53364572 https://www.zybang.com/question/c36868f8667c4a187788b052d7e7ba8e.html
引用类型(类类型、接口类型、枚举类型、数组类型)
类类型,eg:String字符串类
接口类型
枚举类型
数组类型
内存
内存地址
内存
例子
变量
声明
赋值
使用
引入
= 表示赋值,右边赋值给左边
== 表示恒等于
运算符
赋值运算
含义:是指为变量或常量指定数值的符号,如可以使用"="将右边的表达式结果赋值给左边的操作数;
公式:变量名 = 表达式;
读法:将右边的表达式赋值给变量名
表达式:符号(如加号、减号)与操作数(如b、3等)的组合;
Java支持的常用赋值运算符
备注:表达式与语句有相似之处,提醒学生不用去纠结概念,重点关注赋值号
例子
public class HelloWorld{
public static void main(String[] args) {
int one = 10 ;
int two = 20 ;
int three = 0 ;
three=one+two;
System.out.println("three = one + two ==> "+three);
three+=one;
System.out.println("three += one ==> "+three);
three-=one;
System.out.println("three -= one ==> "+three);
three*=one;
System.out.println("three *= one ==> "+three);
three/=one;
System.out.println("three /= one ==> "+three);
three%=one;
System.out.println("three %= one ==> "+three);
}
}
算术运算符
作用:主要用于进行基本的算术运算,如加法、减法、除法、乘法等;
java中常用的算术运算符:
备注:其中,++和--既可以出现在操作数的左边,也可以出现在操作数的右边,但结果是不同的;
++i 先加后用
public class HelloWorld {
public static void main(String[] args){
int i = 5;
int ii = ++i;//让i先执行自增,然后将值赋值给变量ii
System.out.println("i:"+i);
System.out.println("ii:"+ii);
}
}
i++ 先用后加
public class HelloWorld{
public static void main(String[] args) {
int i = 5;
int ii = i++;//将i的值赋给变量ii,然后再执行自增
System.out.println("i:"+i);
System.out.println("ii:"+ii);
}
}
% 用来求余数,也称取模运算
public class HelloWorld{
public static void main(String[] args) {
int a = 5;
int b = 3;
System.out.println("a与b的余数为"+a%b);
}
}
PPT P22练习
第一题按照类型严格定义小明的各项数据。姓名:小明,年龄:20,身高:175,性别:男,婚否:否。并输出成一句完整的个人介绍。
public class IntroduceMySelf{
public static void main(String[] args) {
String name = "小明";
int age = 20;
int height = 175;
char sex = '男';
char marriage = '否';
System.out.println("大家好,我叫"+name+",是一位"+sex+"性,今年"
+age+",我有"+height+"厘米高,婚否:"+marriage+"。");
}
}
第二题思考x与y的值,再用程序验证,是否与预期相同?为什么?int x = 10, y = 10;x++;y = ++x+y++;
public class ValueDemo{
public static void main(String[] args) {
int x = 10;
int y = 10;
x++;
y = ++x + y++;
System.out.println(x);//12
System.out.println(y);//22
}
}
第三题为什么各种数据类型有范围?(回答有意思即可,无标准答案)
JAVA是强类型语言,严格区分数据类型;
根据各种数据类型的范围可以严格控制内存不浪费等;
课后练习题
1、PPT P22 练习题;
2、家庭作业:
总结今天学的知识以及你对它的认识与理解(不少于500字);
预习进制;
---Day2----
转型: - 自动转型(称:隐式类型转换,小范围到大范围) - 特点:称隐式类型转换,由JVM自动完成; - 转换规则:从存储范围小的类型到存储范围大的类型; - 具体规则:byte-->short(char)--->int--->long-->float-->double
- 强制类型转型(称:显示类型转换,大范围到小范围):
- 特点:称:显示类型转换,必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失;
- 转换规则:从存储范围大的类型到存储范围小的类型;
- 具体规则:double-->float-->long-->int-->short(char)-->byte
自增
自减
运算符:
算术运算符
逻辑运算符
比较运算符
位运算符
运算符的优先级
----流程控制----
分支语句
if语句
if--else if---
swith
三目运算
循环语句
while
do-while
for
关键字:
break
continue
----Day3----
特点
声明方式
静态声明
动态声明
操作值
遍历方式
数组复制
含义:数组的复制是指将源数组的元素一一做副本,赋值到目标数组的对应位置。
常用的三种方法:
使用循环语句进行复制;
使用循环语句访问数组,对其中每个元素进行访问操作
public void arrayCopyFor(){
int[] array1 = {1,2,3,4,5};
int[] array2 = new int[array1.length];
//复制
for(int i = 0; i < array1.length; i++){
array2[i] = array1[i];
}
//输出array2结果
for(int i= 0; i < array2.length; i++){
System.out.print(array2[i]+" ");
}
}
使用clone()方法;
含义:Object类是所有类的父类,其clone方法一般用于创建并返回此对象的一个副本,java中认为一切都是“对象”,所以使用该方法也可以实现数组的复制。
public void arrayCopyClone(){
int[] array1 = {1,2,3,4,5};
//复制
int[] array2 = array1.clone();
//输出array2结果
for(int i = 0; i < array2.length; i++){
System.out.print(array2[i]+" ");
}
}
使用Sysetm.arraycopy方法
含义:System.arraycopy()方法是System类的一个静态方法,其可以方便地实现数组复制功能;
结构: System.arraycopy(from,fromIndex,to,toIndex,count);
解释: 该方法有5个参数:from、fromIndex、to、toIndex、count,其含义是将数组from中的索引为fromIndex开始的元素,复制到数组to中索引为toIndex的位置,总共复制的元素个数为count个;
//使用System.arraycopy()方法
public void arrayCopy(){
int[] array1 = {1,2,3,4,5};
int[] array2 = new int[array1.length];
//复制
System.arraycopy(array1, 0, array2, 0, array1.length);
//输出array2结果
for(int i = 0; i < array2.length; i++){
System.out.print(array2[i]+" ");
}
}
数组与数据结构
含义:数据结构是计算机存储、组织数据的方式。数据结构已经作为计算机科学中的一门学科,致力于解决计算机数据的最佳组织方式、提高运行效率等问题。使用数组实现冒泡排序算法、栈和队列。
数组排序
含义:在编程时经常会遇到算法问题,所谓的算法,就是在有限步骤内求解某一个问题所使用的一组定义明确的规则。算法的好坏直接影响到程序的运行效率。
例子:冒泡排序
实现思路:冒泡排序算法每次比较相邻的数,将较小的数放到前面,较大的数放到后面,这样就可以将这些数中最大的数找出来放到最后,然后比较剩下的数,再在这些数中找出最大的数,直到所有的数字按照从小到大的顺序排序;
public void bubble(){
int[] array = {19,4,2,47,98,56,30};
//排序
for(int i = 0; i < array.length; i++){
for(int j = 0; j < array.length - 1; j++){
if(array[j] > array[j + 1]){
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
//打印
for(int i = 0; i < array.length; i++){
System.out.print(array[i] + " ");
}
}
二维数组
----类和对象----
类
对象
方法
static
----项目:ATM----