一、Java开发平台
JavaSE 标准版 Java应用程序 application 五子棋、计算器、qq
JavaEE 企业版 Java企业级应用
JavaME 微型版 小型设备 Android取代了
二、Java 术语
jdk Java开发工具包
JRE java运行环境
JVM java虚拟机
GC Java内存对象垃圾收集机制 自动懒惰lazy回收
API 应用编程接口 对应JavaDoc文档
java.lang.string类 字符串类
java.lang.System类 系统类
IDE 集成开发环境 MyEclipse8.5(版本越高越占内存)
三、Java编程步骤
1、下载并安装JDK
2、配置系统环境变量
JAVA_HOME JDK的安装路径
PATH 命令的搜索路径 javac java命令
CLASSPATH 类的搜索路径
配置好后可以在命令行中反复使用(仅配置依次
3、编辑
4、编译 javac Hello.java ->Hello.class 启动编译器
5、运行 java Hello 启动虚拟机
四、Java注释 Comment
代码和文档(注释)同样重要
1)单行注释 //
2)多行注释 /* */
3)文档注释 /** */
五、变量
变量名 对应变量的值,具备数据类型
第一次声明变量必须明确指定数据类型
String name = “张三丰”;
name = “张三”;
int high = 180;
high= 190;
项目中,形容项目规模:30人/月
30人*1个月
1人*30月
5人*6月
平均没人一天写10个类,一个月20天;
一共:5*10*20*6=6000类 *.class
MyEclipse的使用
一、Java包 关键字package
1、含义:
包好比平时的目录,一层包对应一层目录结构,分包的好处:能够将.class类分门别类的管理。
在D:\下新建一个文本文档
2、语法
在源代码的第一行有效位置:
package 包名;
包名的规范:全部小写,多个包之间使用 . 分隔
一旦给类起了包名,就需要使用全名(全限定名) 包名.类名
package day01;
项目中包层次比较深:
package 公司域名.项目名.模块名.子模块名;
例1、souhu Java 第一天的代码: package com.sohu.javase.day01;//com.sohu 是域名
第二天的代码: package com.sohu.javase.day02;
package com.sohu.javase.day01;
class Hello{ //类名com.sohu.javase.day01.Hello
}
例2、IBM公司、员工管理系统ems、员工类Emp
package com.ibm.ems.entity; //实体包
class Emp{ // 类名是com.ibm.ems.entity.Emp
}
例3、www.bypp.com.cms
package com.bypp.cms.entity;
class Duck{
}
例4、
//包的声明只能在源代码的第一行有效位置
package day01;
public class Hello{
public static void main(String[] args){
System.out.println("Hello");
}
}
编译:D:\ javac -d . Hello.java
-d具备两次含义:
1)制定编译后的 。class文件的路径 。当前目录
2)如果我们指定了包,会安装包的层次自动生成与之对应的目录结果
运行:java com.day01.Hello
使用MyEclipse实现MyInfo.java
IDE使用技巧:
1)选择工作区
2)新建Java工程(Java项目 Java project)
在目录中有:
src目录 sourse 源代码文件目录 *.java
bin目录 binary 字节码文件目录 *.class
3)在src下新建一个类
依次点击:file ->new -> class;
包名:day01;
类名:Hello
4)编辑字体
5)完成编辑
6)编译 保存立即编译 Ctrl + s
如果编译通过,没有红色下划线;
如果编译出错,出现红色下划线;
Syntax error, insert ";" to complete BlockStatements
7)运行
依次右击源代码 -> Run As -> Java Application
注意:alt + / 快速提示并生成固定代码
main 主方法
syso 系统输出
二、标识符 identifier
标识符用于表示代码的各种名称:包名、类名、方法名、变量名、常量名等。
1、标识符的规则5条 必须遵守,否则编译出错;
(1)必须由字母、数字、下划线、&组成,首字母不能是数字;
字母:a-z A-Z 52个;
数字:0-9 10个;
(2)不能是Java关键字; 50个 + 3个自面值
关键字的特点:全部小写 class、int、double、static、public。。
字面值: true、false、null
(3)区分大小写(大小写敏感Case Sensitive)
String与string、Int与int
(4)长度没有限制
ArrayIndexOutOfBoundsException
(5)支持中文,但不推荐使用
int 年龄 = 23;
问题:
2、标识符的规范5条 业务习惯
(1)类名、接口名每个单词首字母大名;
(2)变量名、方法名每一个单词首字母小写,之后的每一个单词首字母大写;
(3)包名全部小写,包名之间 . 分隔;
(4)常量全部大写,单词间使用 _ 分隔;
(5)见名知意
name n1
age a1
ArrayIndexOutOfBoundException 数组小标越界异常
三、Java关键字 key words
在语言中表示不同的功能,特点是全部小写。
练习:从控制台提示并输入name和age,并输出
包名:day02,类名:TestTestScanner 提供main方法
需要使用一个类:java.util.scaner类,扫描器类
java.util包 工具包 utilits(工具)
创建了一个扫描器类的对象sc
scanner sc = new Scanner(System.in);
String name = sc.next(); 输入String数据,调用扫描器对象的next()方法
特点:是一个阻塞的方法,等待着用户的输入,知道用户输入完数据后,将结果返回,才继续往后执行
具体步骤:
1、创建扫描类的对象;
2、打印“请输入名字”;
3、输入anme;
4、打印“请输入年龄”;
5、输入age;
6、打印输出name和age;
注意:
使用Scanner,需要import语句
import语句用于声明使用的类在哪个包下。
以下这些不用写import语句:
1)同包下的类无需import直接使用;
2)java.lang包下的类无需import直接使用;
3)lang包 language语言包太常用了,m默认直接使用
比如:java.lang.String类,字符串类
java.lang.System类,系统类
java.lang.Math类,算数类
注意:import java.util.*;表示java.util包下的所有类都可以使用了,但不包括子包(只管一层)
*是通配符,建议项目中需要具体类名,,效率高
JDK提供丰富的API(类和接口)具备丰富的功能,通过不同的包来管理:
java.lang.String类,字符串类
java.lang.System类,系统类
java.lang.Math类,算数类
java.util.Scanner类 扫描类
与之对应的是一个文档:JavaDoc文档/API文档,是一个HTML网页格式文档。
四、Java的数据类型
1、计算机表示数:二进制,逢二进一;能表示2^4=16种,
2、Java表示数:正数、负数和0
二进制数的补码新式,使用最高位作为符号位(最左边的)——0是正数,1是负数
正数的补码:就是原码; 负数的补码:对应正数的原码,按位取反+1;
4位二进制补码:能表示2^4=16种,表示数范围:-8—7,-2^3—2^3-1
8位二进制补码:能表示2^8=256种,表示数范围:-128—127,-2^7—2^7-1;
01111111——127 1+2+4+8+16+32+64=127
......
00000000——0
11111111——(-1) 00000000+1=00000001 —> 1 —> -1
......
10000000——-128
1)已知8位二进制数补码11111111,翻译成十进制数,由于最高位是1,负数,(按位取反 + 1)
例:11111111翻译成十进制数 —> 00000000 + 1 —> 00000001 —> 1 —> -1;
2)已知十进制数 -1 转化为8位二进制数的补码:(1的原码按位取反 +1)
用 1 的二进制数按位取反 + 1: 00000001 —> 11111110 + 1 —> 11111111 (-1的补码)
4、Java数据类型的特点
Java是一种强类型的语言,第一次声明变量,必须明确指定数据类型,第一次声明变量,必须明确指定数据类型。
Java语法比较严谨、安全、规范。
String name = "Tli"; //字符串字面值
name = "Lili";
name = 123; //整数字面值,类型不兼容,编译无法通过
JavaScript 就是一种弱类型语言:
var n1 = ”Tli“;
n1 = 123;
5、Java数据类型的分类(重要)
(1)基本类型,也称为简单类型、原生类型(prime) 8种
byte short int long char float double boolean
字节 短整型 整型 长整型 字符 单精度浮点型 双精度浮点型 布尔型
能够表示数据的:byte short int long char float double;
能够表示整数:byte short int long char;
能够表示小数:float double;
能够表示布尔:boolean (true、false);
能够表示字符:char;
常用的:int long double char boolean ;
底层存储:按照字节byte为单元,按二进制位存储。
(2)引用数据类型,也称为复杂类型、对象类型 无数种,class可以不断定义的
底层存储:引用(对象内存地址) —> 内存对象 (钥匙—房间——东西)
按照表现形式分为5种:
类class 接口interface 数组String[]/int[] 枚举 标注
(3)void 无返回值类型
注意:不能用来定义变量,只能用于方法的返回值类型,表示无需返回任何结果。
public static void main(String[] args){ ... }
public void playGame(){ ... }
练习题:写Java程序:TestEmpScanner.java
从控制台提示并输入员工的基本信息,并在控制台一次输出所有信息。
员工名字name、员工年龄、员工薪水salary
提示:需要使用扫描器类java.util.Scanner
思路:面向过程编程思想
步骤:
1、创建扫描器对象sc
2、提示并输入name
主要概要:java编程步骤
1、命令行开发方式
(1)编辑 java源程序 Hello.java
纯文本编辑器,比如记事本、Editplus等
package day01;
public class Hello{}
(2)编译 javac -d . Hello.java
-->\day01\Hello.class
(3)运行java day01.Hello
2、使用IDE MyEclipse 提高开发效率
(1)编辑
新建class
(2)编译
(3)右击源代码Run As —>java application
二、Java注释
三、标识符:用于jdk或程序员为代码中的要素命名
1字节 =8二进制 1byte = 8bit
四、关键字 key words
关键字全部小写,表示不同的功能
五、Java数据类型
现实生活中用十进制数表示数;计算机中用二进制数表示数;十六进制、八进制数是为了程序员更方便表示二进制数;Java中用二进制数的补码形式表示数(正数的补码就是原码,负数的原码是用其正数的原码按位取反+1)
-5的8为二进制数补码:0000 0101 —> 1111 1010 +1 = 1111 1011