1、什么是Java
Java是一门高级计算机语言,它是由SUN公司与1995年推出的一种可以编写跨平台应用软件、完全面向对象的程序设计语言。java简单易用、安全可靠,主要面向Internet编程。SUN公司已被Oracle公司收购。
2、Java语言的版本
JavaSE 标准版,是为开发普通桌面和商务应用程序提供的解决方案,JavaSE是核心部分,包括提供了 核心类库,如集合,IO,数据库连接等 JavaEE 企业版,是为开发企业级应用程序提供的解决方案 JavaME(不做了解)
3、Java语言的特点
1)简单
Java语言是一种相对简单的编程语言,它通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。
2)面向对象
Java语言提供了类、接口和继承等,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(implements)。Java是一门纯面向对象的语言。
3)安全
Java语言不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,从而使应用更安全。
4)跨平台
用Java语言编写的程序可以运行在各种平台上,也就是说同一段程序既可以在Windows操作系统上运行,也可以在Linux操作系统上运行。
5)支持多线程
Java语言是支持多线程的。所谓多线程可以简单理解为程序中有多个任务可以并发执行,这样可以在很大程度上提高程序的执行效率。
4、JDK的安装及配置环境变量
什么是JDK: sun公司提供了一套java开发环境,简称JDK。它是整个Java的核心,它包含Java编译器,Java运行工具,Java打包等工具 JRE:Java运行时环境 安装JDK: 双击点开安装包,进行下一步即可,默认安装目录 bin目录:该目录中存放一些可执行程序,如javac.exe(Java编译器) jre目录:jre是Java Runtime Environment的缩写,Java程序运行时 环境,包含Java虚拟机,运行时的类包,Java应用启动器 include目录:因为JDK是通过C和c++实现的,存放c语言的一些头文件 lib目录:lib是library的缩写,存放java类库 src.zip:通过该文件可以查看Java源代码
配置环境变量 检测该电脑是否可以进行java程序开发 在doc命令窗口中输入javac进行判断 如果提示"不是内部命令"表示该电脑不能进行java开发环境变量配置的步骤:
1、复制bin目录的路径2、右键单击此电脑-->点击属性-->高级系统设置-->环境变量-->系统变量-->点开path-->新建输入口将bin目录的路径复制进入即可
5、第一个Java程序的编写
/*
多行注释
Java代码都是由类组成的 什么是类?class就是类 类名紧跟其后 首字母大写 {}表示类体
类体内部有:属性和方法
public static void main(String[] args):主方法 方法名为:main 方法名后面必须有() ()内部内容称为参数
java代码是由jvm调用public static void main(String[] args)-->就是一把钥匙不能写错
方法后面{}:表示方法体 作用:具体要干的事 方法就是行为就是功能
";":java程序写完一行要加";"表示结束
java是一门强类型语言每一个数据类型都有表达
public表示公共的
static表示静态的
void表示无返回值
*/
class Demo1{
// 需求:在当前类中存储一个整数10
// num称为变量名 "=":赋值符号
int num = 10;
// 主方法
public static void main(String[] args){
// 单行注释 System.out.println表示系统打印输出 输出()中的内容 "Hello World!"表示一串字符串
System.out.println("Hello World!");
}
}
6、JAVA的注释
1、单行注释 //2、多行注释 /**/3、文档注释 /** */
作用:给代码加注解更好的理解代码 实际开发中注释的应用:每个类做一个简单的注释 每个方法做一个注释 对比较难理解的代码进行详细注释
标识符:
在java中,经常需要在程序中定义一些符号来标记一些名称,如包名 类名 方法名 不能随便起 不能出现 a,b,c,d 每一个名称都有其意义。
标识符的命名规范:
字母,数字,下划线,$组成;数字不能开头,不能有特殊符号(*#@) 例如 123abc这是不对的 abc123这是对的
class能作为类名吗?
java内部提供的相关关键字是不能作为自定义名称出现的关键字不能作为自定义名称出现关键字:关键字是编程语言里事先定义好并赋予了特殊含义的单词,也称作保留字,例如public class等
7、变量的概念
变量 字面意义:可变的量 编程意义:在程序运行期间,随机可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元被称为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。注意:变量名不能重名
数据类型: 基本数据类型: 整数类型:byte(8位 1字节)字节型 short(16位 2字节)短整型 int(32位 4字节)整型 long(64位 8字节)长整型 它们的容量是依次增大的 小数类型:float(32位 4字节)单精度浮点型 double(64位 8字节)双精度浮点型 字符型:char(16位 2字节) 布尔型:boolean(类型通常可以看作占用1位,用来表示布尔值) 引用数据类型: 类:class 接口:interface 数组 枚举:enum 注解:annotation
public class Demo1 {
// 叫做声明变量
int number;
// 使用int
static int num = 10;
// 在java中不允许在同一个区域有相同的名称出现(包括方法名和属性名)
// static short num = 10;
static short num2 = 100;
static long num3 = 1000;
static byte num4 = 100;
static float num5 = 10.0f;
static double num6 = 11.0;
static char sex = 'b';
static boolean bool = true;// boolean布尔类型只有两个值true|false 一般用于判断
public static void main(String[] args) {
// 给number变量赋值
number = 10;
// 打印语句就表示使用num变量
// 因为主方法中有一个单词叫static所以变量中也必须有一个static
System.out.println(num);// 使用变量直接将其变量名写入即可
// System.out.println("num");// 加上双引号表示里面的内容为字符串
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
System.out.println(num5);
System.out.println(num6);
System.out.println(sex);
System.out.println(bool);
}
}
8、包
包(package):就是用于区别存放代码的地方
格式:遵循www.baidu.com
图示:
案例:
package com.sj.cn;
9、特殊的变量类型:String字符串
String是一个特殊的数据类型 即是一个类又是一个变量 、
记住:Java中所有的类名的首字母都是大写的
案例:
public class Demo2 {
// ""就是字符串String
static String name = "张三";
public static void main(String[] args) {
System.out.println("123");// "123"也称为字符串
System.out.println(name);// "123"也称为字符串
}
}
10、作用域&全局变量局部变量
什么叫作用域:作用的区域就叫做作用域
案例:
public class Demo3 {
/*
在类中在方法的外面声明的变量称为全局变量
在类中在方法的里面声明的变量称为局部变量
区别:
1、全局变量可以声明不给值,局部变量不行 -->全局变量有默认值局部变量没有
2、全局变量和局部变量调用的时候首先去调用局部变量如果没有局部变量调用全局变量
3、全局变量可以在类中任意方法中被调用,局部变量只能在当前方法中被调用
*/
static int num = 10;
static int num2 ;
public static void main(String[] args) {
// 在方法中也可以声明变量
// int num = 20;
int num2 = 2; //
System.out.println(num2);
}
}
11、算术、赋值(自增,自减)、关系、逻辑、三目运算符、字符串连接符、转义字符
运算符:+ - * / % ++ -- += -= > < >= <= == && || ! =
算数运算符
+加法
-减法
*乘法
/除法
%取余
案例:
public class Demo4 {
public static void main(String[] args) {
// int num = 10;
// int num2 = 20;
// int num3 = num + num2;
// System.out.println(num3);
// System.out.println(num+num2);
int num = 6;
int num2 = 2;
int num3 = num%num2; // %取余符号 取余数 6/2==3...0
System.out.println(num3);
}
}
赋值运算符:
= 赋值 += 加等于 -= 减等于 *= 乘等于 /= 除等于 %= 模等于
案例:
public class Demo4 {
public static void main(String[] args) {
/*
= 赋值
+= 加等于
-= 减等于
*= 乘等于
/= 除等于
%= 模等于
*/
// "="表示赋值符号
int num = 10;
int num2 = 20;
num+=num2; // +=相当于 num=num+num2
System.out.println(num);
}
}
自增/自减
++ 自增
-- 自减
案例:
public class Demo4 {
public static void main(String[] args) {
// // ++ / --
// int num = 10;
// num++; // 相当于num=num+1
// System.out.println(num);
int num = 10;
System.out.println(num++);// 打印结果:10
System.out.println(num);// 打印结果:11
System.out.println(++num);// 打印结果:12
/*
++在后面表示先引用再自增
++在前面表示先自增在引用
*/
}
}
自减同上
比较运算符
== 恒等于!= 不等于< 小于>大于
“>=” 大于等于
<= 小于等于
案例:
public class Demo4 {
public static void main(String[] args) {
// 比较运算符:结果为boolean类型
System.out.println(1 == 1);// true
System.out.println(1 >= 1);// true
System.out.println(1 <= 1);// ture
System.out.println(1 != 1);// false
}
}
逻辑运算符
&& 短路与
|| 短路或
! 取反
案例:
public class Demo1 {
public static void main(String[] args) {
// 两个表达式 表达式1&&表达式2 当表达式1和表达式2都为true的时候整体为true
if(1==1 && 2 != 2){
System.out.println("执行1");
}else{
System.out.println("执行2");
}
System.out.println("========================");
// ||表示或者 表达式1||表达式2 当两边有一边为true整体为true
if(1!=1 || 2 == 2){
System.out.println("执行1");
}else{
System.out.println("执行2");
}
System.out.println("========================");
// !表示取反
if(!(1!=1 || 2 == 2)){
System.out.println("执行1");
}else{
System.out.println("执行2");
}
}
}
三目运算符
判断语句?值1:值2
如果判断语句为true执行值1如果为false执行值2
案例:
System.out.println(1>=1?true:false);
字符串连接符
+
案例:
public class Demo4 {
public static void main(String[] args) {
// 字符串和任意数字"相加"都为字符串 在此处"+"不表示加法运算表示字符串连接符
System.out.println("123"+1);// 打印结果:1231 数据类型为字符串
}
}
转义字符
\n 换行符
\t 制表符
案例:
public class Demo4 { public static void main(String[] args) { // \n表示换行 \t表示制表符 System.out.println("123"+1+"\n"+"1231"); System.out.println("123"+1+"\t"+"1231"); } }
12、 if判断语句&switch选择语句
if判断语句
public class Demo5 {
public static void main(String[] args) {
int num = 10;
/*
if(条件表达式){
代码块1...
}esle{
代码块2...
}
如果表达式为true执行代码块1如果为false执行代码块2
*/
// if(num == 5){
// System.out.println(true);
// }else{
// System.out.println(false);
// }
/*
当嵌套if语句时,如果有多个表达式为true,那么只执行第一个为true的语句
if语句可以嵌套多个
*/
if(num == 10){
System.out.println(5);
}else if(num == 10){
System.out.println(10);
}else{
System.out.println(false);
}
}
}
switch选择语句
public class Demo6 {
public static void main(String[] args) {
/*
switch(表达式)表示选择语句
case表示选项
break表示结束
*/
int num = 1;
switch (num){
case 1:
System.out.println("选择1");
// break; 如果将break注释掉执行1之后还会执行2
case 2:
System.out.println("选择2");
break;
case 3:
System.out.println("选择3");
break;
case 4:
System.out.println("选择4");
break;
default:
System.out.println("没有该选项!");
break;
}
}
}
13、Scanner类的用法
案例:
import java.util.Scanner; // 使用java内置的类必须导包
public class Demo7 {
public static void main(String[] args) {
// 面向对象的写法
Scanner scanner = new Scanner(System.in);
// println中的ln表示换行可以删掉
System.out.print("请输入你的选项:");
// 调用Scanner类中的方法输入数字
int num = scanner.nextInt();
switch (num) {
case 1:
System.out.println("选择1");
// break; 如果将break注释掉执行1之后还会执行2
case 2:
System.out.println("选择2");
break;
case 3:
System.out.println("选择3");
break;
case 4:
System.out.println("选择4");
break;
default:
System.out.println("没有该选项!");
break;
}
}
}
Day02
14、循环语句
while循环
语法格式: 要素1 while(表达式要素2){ 表达式:满足条件进行执行循环体 循环体... 要素3 } 循环三要素:1、初始化值 2、循环条件 3、更改循环变量的值
案例:
public class Demo2 {
public static void main(String[] args) {
// 要素1:初始化值
int num = 1;
// 要素2:设置循环判断条件
while(num <= 10){
System.out.println(num);
// 设置循环步长
num++;
}
}
}
do-while循环
语法格式:
初始化值;
do{ 循环体...
循环步长
}while(表达式);
案例:
public class Demo2 {
public static void main(String[] args) {
// 要素1:初始化值
int num = 1;
// 要素2:判断条件是否满足
while(num <= 10){
System.out.println(num);
// 设置循环步长
num++;
}
System.out.println("=========================");
int i = 100;
do{
System.out.print(i+" ");
i++;
}while (i<=10);
}
}
注意:do-while循环和while循环有什么区别?do-while循环不管条件成不成立都会执行一次循环体,while循环必须满足条件才能执行循环体
for循环
语法格式: for(循环要素1,循环要素2,循环要素3){ 循环体... }
案例:
public class Demo2 {
public static void main(String[] args) {
// 要素1:初始化值
int num = 1;
// 要素2:判断条件是否满足
while(num <= 10){
System.out.println(num);
// 设置循环步长
num++;
}
System.out.println("=========================");
int i = 100;
do{
System.out.print(i+" ");
i++;
}while (i<=10);
System.out.println();
System.out.println("==========================");
for (int number = 1 ; number <= 10 ; number ++){
System.out.print(number+" ");
}
}
}
注意:一般情况下,不知道循环次数用while循环,知道循环次数用for循环。
while循环和do-while循环一般用while循环(看需求)
15、break和continue的使用
break案例:
public class Demo3 {
public static void main(String[] args) {
int i = 1;
while(i <= 10){
System.out.println(i);
if(i == 5){
break;
}
i++;
}
}
}
continue案例:
关于continue有一些需要注意的点
在循环语句中我们要把continue语句写在自增后面,假设写在自增前面,那num自增到5时将一直为五,每次都跳过本次但数字不增加,陷入死循环
while (num<=10) { num++; if(num==5){ continue; } System.out.println(num); }
public class Demo3 {
public static void main(String[] args) {
int i = 1;
while(i <= 10){
if(i == 5){
i++;
continue;
}
System.out.println(i);
i++;
}
// for (int i = 1 ; i <= 10 ; i ++){
// if(i == 5){
// continue;
// }
// System.out.println(i);
// }
}
}
16、项目一讲解
猜数字游戏:
new Random().nextInt(10);
public class Demo4 {
public static void main(String[] args) {
// 电脑生成随机数 0-9
int computerNum = new Random().nextInt(10);
System.out.println("中奖数字已生成!"+computerNum);
Scanner sc = new Scanner(System.in);
// nextInt():这个方法的作用是键盘录入一个数字
int personNum = sc.nextInt();
while (true){
if(computerNum == personNum){
System.out.println("恭喜中奖!");
break;
}else{
System.out.println("没有中奖!");
}
System.out.println("请再次输入:");
personNum = sc.nextInt();
}
}
}