Java编程入门
2021-05-18 09:44:51 1 举报
AI智能生成
Java编程入门, 完整语法基础
作者其他创作
大纲/内容
Java语言简介
Java发展简介
Sun公司开发的一套编程语言,但前身不是Java
SUN(Stanford Uniwersity NetWork,斯坦福大学网络)
最早标标性作品:小型机
电子商务是IBM提出来的
后来被Oracle收购,但在Oracle收购前产品线上技术基础是Java
SUN没有通过Java赚到钱,真正赚到钱的是IBM和后来版权欺诈的Oracle
网景公司推出HotJava浏览器
1995-5-23正式推出Java编程语言
1996年可以下载使用JDK1.0开发包
1997年传到中国
Java标准开发(J2SE,JAVA SE),:提供底层的支持,实现了桌面程序开发(单机程序)
Java嵌入式开发(J2ME, JAVA ME):SUN公司最早想做嵌入式开发,但后来被Nokia折腾够了,后来被Android替代了
Java企业开发(J2EE,JAVA EE):主要进行企业平台搭建,现在主要的开发是互联网平台
Java语言特点
是一个行业内通用的技术实现标准
是一门面向对象编程语言
提供有方便的内存回收机制
避免了复杂的指针问题,使用简单的引用代替指针,引用难理解
Java是为数不多的支持多线程编程语言,多线程难理解,正确额多线程处理是提升性能的核心所在
Java具有良好的可移植性
JVM(Java虚拟机):一个由软件硬件模拟处理的计算机,不同系统有不同版本的JVM,从而实现可移植性
Java应用程序运行机制
计算机高级编程语言类型:编译型,解析型
Java是两种语言的结合

用来解析的计算机就是Java虚拟机
Java程序组成
Java源文件
字节码文件
机器码指令
由JVM执行肯定比会直接在操作系统上直接执行要慢
Java语言足够简单
搭建Java开发环境
JDK简介
Java Development Kit, Java开发工具包
JDK版本更新
1995.05.23, JDK1.0开发包发布,96年正式提供下载
1998-12-04, JDK.2, Java更名为Java2
2005-05-23, JDK1.5, 这一版本决定了Java后续十年的技术核心
2014年, JDK1.8, 支持Lambda变大时, 可以使用函数编程
2017年, JDK1.9, 提升了稳定性
2018年, JDK1.10, 属于JDK1.9的稳定版, JDK1.11
2019年, JDK1.12, jDK1.13
2020年3月, JDK.14
JDK下载
JDK安装与配置
安装JDK
环境变量配置
配置JDK路径: JAVA_HOME
配置PATH路径: %JAVA_HOME%\bin
配置CLASSPATH路径: .;%JAVA_HOME%\lib
初识Java开发
Java编程起步
public class Hello {
public static void main(String args[]) {
System.out.println("public") ;
}
}
类的定义
可以定义多个class
public class 类名称 {}
class 类名称 {}
类名称首字母必须大写
主方法是程序执行的起点, 且必须定义在类中
JShell工具
一个编写代码交互性工具,可直接运行核心代码,而不用编写结构,但实用性不高
CLASSPATH环境属性介绍
作用:可以在不同目录中加载 执行*.class文件
SET CLASSPATH = D:\Code\Java
SET CLASSPATH=.
CLASSPATH 和 PATH区别(面试题)
PATH 是操作系统提供的路径配置, 定义所有可执行程序的路径
CLASSPATH 是JRE提供,定义Java程序解析时加载路径
Java基本概念
注释
本质: 程序编译时发现有注释内容将不对此部分进行编译
单行注释: //
多行注释: /* ....*/
文档注释: /** ...*/
标识符与关键字
在不同的结构一定要有不同的说明,结构的说明是有命名要求的
由字母, 数字, _ , $组成, 不能用数字开头
对一些关键字的简短说明
JDK1.4时有assert关键字, 用于异常处理上
JDK1.5时有enum关键字, 用于枚举定义上
未使用到的关键字: goto, const
一些特殊含义的单词, 严格来讲不算是关键字: true, false, null
Java数据类型划分
Java数据类型简介
基本数据类型
整数型
整型: byte, short, int, long
默认值: 0
浮点型: float, double
默认值: 0.0
布尔型: boolean
默认值: false
字符型: char
默认值: 'u0000'
引用数据类型
数组, 接口, 类
默认值: 0
数据类型的选择参考
描述数字首选int, double
进行数据传输或文字编码转换用byte(二进制处理操作)
处理中文最方便的是char(可选概念)
描述内存或文件大小, 描述主键列(自动增长)可以用long
数据类型可表示范围
int: 32位, -2,147,483,648~2,147,483,647
float: 32位, -3.4E38~3.4E38
double: 64位, -1.7E308~1.7E308
char: 16位, 0~65536
byte: 8位, -128~127
long: 64位, -9,223,372,036,854,775,808(-2^63)~9,223,372,036,854,775,807(2^63 -1)
short: 16位, -32768~32767
整形数据类型
数字在进行处理时如果超过范围会循环,即数据溢出,int型 最大值+1=最小值(循环)
解决数据溢出
操作时预估数据范围,范围不够就使用更大范围
默认整数常量都是int型, 后面加"L"可以转换为long, 或在前面用"(long)"
自动类型转换
数据范围大的数据类型与范围小的数据类型计算时, 小自动转成大的
强制类型转换
范围大的类型转小的类型
byte
byte num =20
Java对byte进行了处理, 如果int常量范围没超过byte, 会自动转为byte, 但是对于变量, 还需要强制类型转换
浮点型数据
小数默认都是double
定义float = 10.2, 需要使用强制类型转换
float = 10.2F;
float = (float)10.2;
计算时要注意选择的数据类型, 决定小数点的问题
字符型
任何编程语言中,char 都可以与 int 相互转换
编码范围
'A'(65)~'Z'(90)
'a'(97)~'z'(122)
0(48)~9(57)
Java中的char类型可以保存中文数据
布尔型
注意:Java中不存在在用0表示false, 1表示true
String字符串
要求使用双引号""描述
使用"+"进行字符串连接处理
str = "Hello";
str += "!!!";
计算中如果有String字符串, 则所有类型无条件变为String, 此时"+"为字符型拼接
转义字符
TAB(\t)
" (\")
' (\')
换行 (\n)
\ (\\)
Java运算符
运算符简介
运算符里()优先级最高
不建议编写很复杂的运算, 简单易懂为主
数学运算符
简化运算占用内存会较少: 如"+="
"x++", 先计算在自增
"++y", 先自增再计算
关系运算符
"="表赋值, "=="才是关系运算
逻辑运算符
三目(赋值)运算符
关系运算 ? 关系满足时内容 : 关系不满足时内容
例: int max = x > y ? x : y;
位运算
指的是可以直接进行二进制数据的计算处理
与(&), 或(|), 异或(^), 反码(~)
&& 运算: 如果前面条件返回false, 后面结果不再执行,结果时false
|| 运算: 前面条件返回true, 后面不在执行
移位运算
int x = 2;
x << 2(结果x = 8)
Java程序逻辑控制
If分支结构
使用的关键字: if, else
if(布尔表达式){
条件满足时执行;
}else if(布尔表达式){
条件满足时执行;
}else{
条件不满足时执行;}
执行多逻辑判断可以不写上else, 但好的习惯是写上else
Switch开关语句
switch(数据){
case 数值 : {
数值满足时执行 ;
[break ;]
}
case 数值 : {
数值满足时执行 ;
[break ;]
}
[default:
所有判断数值不满足时执行 ;
[break ;]
]
}
case后面如果没有break, 会继续执行后续代码,直到执行完毕遇见break
while循环
while循环
while(布尔表达式){
条件满足执行 ;
修改循环条件 ;
}
do ... while循环
do{
条件满足执行 ;
修改循环条件 ;
}while(布尔表达式);
for循环
for(定义循环的初始化数值 ; 循环判断 ;修改循环数据){
循环语句的执行 ;
}
循环控制
两个控制语言语句: break, continue
break: 跳出循环
continue : 当前语句后续代码不再执行,直接执行后续判断
循环嵌套
在一个循环语句里嵌套另一个循环
循环嵌套越多, 时间复杂度越高
方法的定义及使用
在程序中可能需要重复执行的一些代码. 有些书把方法(method)叫函数(funtion)
子主题
方法的定义
方法在主类中定义, 并且由主方法直接调用
public static 返回值类型 方法名称([参数类型 变量,....]) {
// 该方法要执行的代码
[return [返回值] ;]
}
没有返回值可以用void定义
如果返回值类型时void, 也可以用return结束调用
java中定义方法时一般不用太长, 对项目进行适当的拆分
方法重载
同一个方法名称根据调用时传递的不同参数个数或类型实现不同的方法体调用,从而实现方法重载的定义
例如System.out.println()可以接收 不同数据类型, 就是一个方法重载
例:
方法的重载与方法的返回值类型没有任何关系, 它只跟参数有关. 掌握一个基本的开发原则 : 只要是方法重载建议其返回值类型相同
方法的递归调用
指的是一个方法自己调用自己的情况
例: 累加
例 : 阶乘
一定要设置递归调用结束的条件
每一次调用一定要修改传递的参数条件
递归操作实际开发中很少出现递归情况, 处理不当会导致栈溢出
0 条评论
下一页