Java学习之路

第1章 内容介绍

1.1 Java课程三个阶段

Java课程三个阶段
建立编程思想
提升编程能力
分析需求,实现代码能力

1.2 Java开发场景举例

SSM
Spring轻量级的容器框架
Springmvc分层的web开发框架
MyBatis持久化框架

第2章 Java概述

2.1 什么是程序

程序:计算机执行某些操作或解决某个问题而编写的一系列有限指令的集合

2.2 Java技术体系平台

Java SE(Java Standard Edition)标准版
支持面向桌面级应用(如windows下的应用程序)的Java平台,提供了完整的Java核心API。
Java EE(Java Enterprise Edition)企业版
是为开发企业环境下的应用程序提供的一套解决方案,包含的技术如:Servlet、JSP等,主要针对与web应用程序开发。
Java ME(Java Micro Edition)小型版
支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加入了针对移动终端的支持。

2.3 Java重要特点

(1) Java语言是面向对象的(oop)

(2) Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮的重要保证。

(3) Java语言是跨平台性的。(即一个编译好的.class文件可以在多个系统下运行)

(4) Java语言是解释型的。

解释型语言:Javascript,PHP,java。编译型语言:c,c++

区别:解释型语言,编译后的代码不能直接被机器执行,需要解释器执行。编译型语言,编译后的代码可以被机器直接运行。

2.4 什么是JVM、JDK、JRE

2.4.1 JVM

(1) JVM 是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器,包含在 JDK 中.

(2) 对于不同的平台,有不同的虚拟机。

(3) Java 虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”

2.4.2 JDK、JRE
2.4.2.1 JDK 基本介绍

(1)JDK 的全称(Java Development Kit Java 开发工具包) JDK = JRE + java 的开发工具 [java, javac,javadoc,javap 等]

(2)JDK 是提供给 Java 开发人员使用的,其中包含了 java 的开发工具,也包括了 JRE。所以安装了 JDK,就不用在单独 安装 JRE 了。

2.4.2.2 JRE 基本介绍

(1)JRE(Java Runtime Environment Java 运行环境) JRE = JVM + Java 的核心类库[类]

(2)包括 Java 虚拟机(JVM Java Virtual Machine)和 Java 程序所需的核心类库等,如果想要运行一个开发好的 Java 程序, 计算机中只需要安装 JRE 即可

2.4.2.3 JDK、JRE 和 JVM 的包含关系

(1)JDK = JRE + 开发工具集(例如 Javac,java 编译工具等)

(2) JRE = JVM + Java SE 标准类库(java 核心类库)

(3) 如果只想运行开发好的 .class 文件 只需要 JRE

2.5 Java入门案例

(1)需求说明:要求开发一个 Hello.java 程序,可以输出 “hello,world!”

(2)开发步骤

  • 将 Java 代码编写到扩展名为 Hello.java 的文件中。

  • 通过 javac 命令对该 java 文件进行编译,生成 .class 文件。

  • 通过 java 命令对生成的 class 文件进行运行。

(3)运行原理 Hello.java-----javac编译------->Hello.class----java运行------>JVM for Windows

(4)代码实现

//2. Hello{ } 表示一个类的开始和结束 
//4. main() {} 表示方法的开始和结束 
//6. ;表示语句结束 
public class Hello { // public class Hello 表示 Hello 是一个类,是一个public 公有的类 
//编写一个 main 方法 
public static void main(String[] args) { // public static void main(String[] args) 表示一个主方法,即我们程序的入口
System.out.println("韩顺平教育 hello"); //System.out.println("hello,world~"); 表示输出"hello,world~"到屏幕 
	} 
}//一个源文件中最多只能有一个 public 类。其它类的个数不限。
//Dog 是一个类,编译后,每一个类,都对于一个.class 
class Dog { 
//一个源文件中最多只能有一个 public 类。其它类的个数不限,也可以将 main 方法写在非 public 类中, 
//然后指定运行非 public 类,这样入口方法就是非 public 的 main 方法 
public static void main(String[] args) { 
    System.out.println("hello, 小狗狗~");
	} 
}

2.6 Java常用转义字符

  • 在控制台,输入 tab 键,可以实现命令补全
  • \t :一个制表位,实现对齐的功能 \n :换行符 \ \ :一个\ \ " :一个" \ ’ :一个’ \r :一个回车

2.7 注释

  • 注释类型: 单行注释 //注释文字 多行注释 /* 注释文字*/

  • 文档注释 /** */:注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档,一般写在类。

基本格式:javadoc -d 文件夹名 -xx -yy 类名.java

/**
  * @author 韩
  * @version 1.0
  */

第3章 变量

3.1 变量是程序的基本组成单位。

变量三要素(类型+名称+值)

3.2 变量

3.2.1 概念

变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)。

3.2.2 变量使用基本步骤

(1) 声明变量 int a;

(2) 赋值 a = 60; //应该这么说: 把 60 赋给 a

3.2.3 变量使用示例
public class Var02 { 
    //编写一个 main 方法
    public static void main(String[] args) { 
        //记录人的信息
        int age = 30; 
        double score = 88.9; 
        char gender = '男'; 
        String name = "king"; 
        //输出信息
        System.out.println("人的信息如下:"); 
        System.out.println(name); 
        System.out.println(age);
        System.out.println(score);
        System.out.println(gender);
	} 
}
3.2.4 变量使用注意事项
  • 变量必须先声明,后使用, 即有顺序。

  • 该区域的数据/值可以在同一类型范围内不断变化。

  • 变量在同一个作用域内不能重名。

3.3 程序中 + 号的使用

(1)当左右两边都是数值型时,则做加法运算。System.out.println(100 + 3); //103

(2)左右两边有一方为字符串,则做拼接运算。System.out.println(“100” + 98); //10098

(3)运算顺序从左到右运算。System.out.println(“hello” + 100 + 3); //hello1003

System.out.println(100 + 3 + “hello”); //103hello

3.4 数据类型

  • 每一种数据都定义了明确 的数据类型,在内存中分配了不同大小的内存空间(字节)。
  • 在这里插入图片描述
3.4.1 整数类型
  • 表示整数

(1)byte[1] short[2] int[4] long[8]

(2)类型:

类型占用存储空间范围
byte[字节]1字节-128~127
short[短整型]2字节-(215)~215-1
int[整型]4字节-231~231-1
long[长整型]9字节-263~263-1

(3)整数使用细节

  • Java的整型常量默认为int型,声明long型须在后加 ‘l’ 或 ‘L’
  • byte是计算机基本存储单位。bit是计算机最小存储单位。
3.4.2 浮点类型
  • 可以表示小数

(1)分类:

类型占用存储空间范围
单精度float4字节-3.403E38~3.403E38
双精度double8字节-1.798E308~1.798E308

(2)特别说明:关于浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位。 尾数部分可能丢失,造成精度损失(小数都是近似值)。

(3)使用细节

  • Java的浮点数常量默认为double型,声明float型常量,须后加 ‘f’ 或 ‘F’

  • 浮点数常量有两种表示方式:十进制:5.12,512.0f 科学计数法: 5.12e2

  • 当我们对运算结果是小数的进行相等判断时,要小心 。应该是以两个数的差值的绝对值,在某个精度范围内判断。eg: if(Math.abs(num1-num2) < 0.000001) 则判断num1==num2。

3.4.3 字符类型
  • 可以表示单个字符

(1)类型: char(两个字节)可以存放汉字;多个字符用字符串String。

(2)字符常量是用单引号(’ ')括起来的单个字符。例如:char c1 = ‘a’; char c2 = ‘中’; char c3 = ‘9’;

(3)在Java中,char的本质是一个整数,在输出时,是unicode码对应的字符。

(4)给char赋一个整数,输出时,会输出unicode码对应的字符。

(5)char类型是可以计算的,相当于一个整数。

(6)字符型存储到计算机中,==eg: ‘a’ 存储:‘a’ ==>码值97 ==>二进制(110 0001) ==>存储。 读取:二进制(110 0001)=>97 ==>‘a’ >显示

字符编码表

  • ASCII 编码表:一个字节表示,128个字符。缺点:不能表示所有字符。
  • Unicode编码表:固定大小的编码,使用两个字节来表示字符。字母和汉字统一都是占用2个字节。 缺点:浪费存储空间。
  • utf-8编码表:大小可变的编码,字母用一个字节,汉字用3个字节
  • gbk:字母用一个字节,汉字用2个字节。
3.4.4 布尔类型

(1)类型: boolean[1],boolean类型数据只允许取值true和false,无null。

(2)适用于逻辑运算:if条件控制语句,while、do-while、for循环控制语句。

3.4.5 基本数据类型转换
3.4.5.1 自动类型转换
char
int
long
float
double
byte
short
int
long
float
double
  • 转换注意细节

(1)多种类型数据混合运算时,系统自动将所有数据转换成容量最大的数据类型,再进行计算。

(2)把精度大的赋值给精度小的,会报错。反之自动转换。

(3)(byte、short)和char之间不会相互自动转换

(4)byte、short、char三者之间可以计算,计算时首先转换为int类型。

(5)当把具体数赋给 byte 时,先判断该数是否在 byte 范围内,如果是就可以 byte b1 = 10; //对 byte b2 = n2; //错误,原因: 如果是变量赋值,判断类型

3.4.5.2 强制类型转换

(1)自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符 ( ),但可能造成 精度降低或溢出,格外要注意。

(2)细节说明

  • 数据类型从大到小,使用强制转换。
  • 强制符号只对最近的操作数有效,必要时使用()提升优先级。
  • char可以保存int的常量值,但不能保存int的变量值,需要强转。
3.4.5.3 基本数据类型和String类型的转换

(1)基本转为String:将基本类型的值+" " 。eg: int n1 = 100; String str1 = n1 + " ";

(2)String转为基本:**通过调用基本类型的包装类parseXX方法。

public class StringToBasic{
	public static void main(String[] args){
		String s = '123';
		int num1 = Integer.parseInt(s);
		double num2 = Double.parseDouble(s);
		System.out.println(num1);//123
		System.out.println(num2);//123.0
	}
}

(3)注意事项:在将 String 类型转成 基本数据类型时, 要确保String类型能够转成有效的数据,比如 我们可以把 “123” , 转成一 个整数,但是不能把 “hello” 转成一个整数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值