Java匹马行天下之JavaSE核心技术——Java基础语法
Java基础语法
一. 认识Java
1. Java 简介
java 是一种高级的面向对象的程序设计语言,使用Java语言编写的程序时跨平台的。从pc到手机,都有Java开发的程序和游戏,Java程序可以在任何计算机,操作系统和支持的Java的硬件设备上运行。
***2. Java语言
- java 是1995年,sun公司推出的一种面向对象的程序设计语言。
- 由詹姆斯.戈士林设计完成,并完成了Java的原始编译器和虚拟机。Java原名oak,在1995年被正式以Java命名发布。詹姆斯.戈士林被称为Java之父。
- Java语言是一种通过解释来执行的语言,其语法与c语言相似。同时其也是一种跨平台的程序设计语言。
- 与c语言相比,Java语言简洁,且提高了可靠性,除去了最大的程序错误根源。并且Java具有较高的安全性。
- Java程序既是编译型的,又是解释型的。Java程序经过编译转换为一种Java字节码的中间语言,通过Java虚拟机(JVM)将字节码进行解释和运行。编译只进行一次,而解释,在每次运行时都会进行。
Java程序的编译运行过程图解:
3. Java的一些应用领域
借助Java,程序开发人员可以自由的使用现有的硬件和软件系统平台。Java是独立于平台的,它还可以应用于计算机之外的领域。Java主要在桌面应用开发,嵌入式系统开发,电子商务应用,企业级应用开发,交互式系统应用开发,多媒体系统开发,分布式系统开发,web应用系统
4. Java的几个版本
- java SE
Java SE是Java的标准版,主要用于企业级分布式的网络程序。包含Java语言基础,JDBC(Java数据库连接性)操作,I/O(输入/输出),网络通信,多线程技术。
java SE结构图:
2.java EE
java EE是Java的企业版,主要用于开发企业级分布式网络程序。其核心是EJB(企业Java组件模型)。
java EE结果图:
3.Java ME
java ME 主要应用于嵌入式系统开发
5. Java API文档
API(application programming interface,缩写作 API),即应用程序编程接口,JavaAPI文档是java程序开发不可或缺的编程词典。记录了Java中海量的API,主要包括类的继承结构,成员变量和成员方法,构造方法,静态成员的详细和描述信息。
参考文档:
java api 官方在线文档
java API在线中文文档
java API1.8中文版下载
6. java语言的一些特性
简单,面向对象,分布性,可移植性,解释型,安全性,健壮性,线程性,高性能,动态。
面向对象的:
面向对象是Java语言的基础,也是Java语言的重要特性,它本身就是一种纯面向对象的程序设计语言。Java提出万物皆对象。语法中不能在类外面定义单独的数据和函数。即Java语言的最外部数据类型就是对象,所有的元素都要通过类的对象来访问。
分布性:
Java的分布性包括操作的分布和数据的分布,其中操作分布是指在多个不同的主机上布置相关操作,而数据分布是将数据分别存在不同的主机上面。Java可以通过URL(统一资源定位符)对象访问网络对象,访问方式于访问本地系统相同。
可移植性:
Java 程序具有于体系结构无关的特性,可以方便的移植到网络上的不同计算机中。同时,Java的类库也实现了针对不同平台的接口,使这些类库可以移植。
多线程:
多线程机制能够使应用程序在同一时间并行执行多项任务,而且相应的同步机制可以保证不同线程能够正确地共享数据,使用多线程,可以带来更好的交互能力和实时行为。
二. 数据类型、变量和运算符
详细见 https://www.cnblogs.com/zyx110/p/10621799.html
1. 数据类型
基本数据类型
整型
byte(1个字节 表示范围:-2^7 ~ (2^7)-1)
short(2个字节 表示范围:-2^15~(2^15)-1)
int(4个字节 表示范围:-2^31 ~ (2^31)-1)
long(8个字节 表示范围:-2^63 ~ (2^63)-1)
浮点型
floot(32位 4个字节)
double(64位 8个字节)
字符型
char(16位,2个字节)
布尔型
boolean(两个值:true和false)
引用数据类型
数组
类
接口
2. 数据类型转换
隐式转换
小类型的数据赋进大类型的变量
例如:
byte、short、int、char运算时都转换为int
short s = 1;
s= s+1;`这是错误运算应改成s+=1;
显示转换
小类型的变量=(小类型)大的数据`会造成精度的丢失`
3.运算符
算数运算符
`+` 加法 、`-` 减法、`*` 乘法、`/` 除法
`%` 取余 `++` 自增 `--` 自减 `+` 字符连接符(当操作数中只要有一个是String类型,系统会自动将另一个操作数转换成字符串类型,然后进行连接)
赋值运算符
`=`
关系运算符(结果为boolean类型)
逻辑运算符
位运算
4、标识符
标识符的命名规则
必须以字母、下划线(_)或美元符号($)开头
余下的字符可以是下划线、美元符号或任何的字母或数字,长度不限。标识符中不能有空格。
不能使用Java中的关键字或者保留字做为标识符
类名: Pascal规则 eg:Person StudentDemo
方法名: Camel规则 eg:getAge setUserName
包名: 全部小写 eg:com.neusoft
常量名: 全部大写 eg:MAX_VALUE
5. 流程控制语言
1、流程控制语句
条件控制
if-else
if(布尔表达式)
{
//如果布尔表达式为true将执行的语句
}
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
//如果布尔表达式 3的值为true执行代码
}else {
//如果以上布尔表达式都不为true执行代码
}
switch-case
switch(expression){
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}
循环控制
for
for(初始化; 布尔表达式; 更新) {
//代码语句
} //增强型 for 循环
for(声明语句 : 表达式)
{
//代码句子
}
while
while( 布尔表达式 ) {
//循环内容
}
do-while
do {
//代码语句
}while(布尔表达式);
6. 数组
详见 https://www.cnblogs.com/zyx110/p/10622685.html
1. 数组:数组可以看成多个相同类型的数据的组合,实现对这些数据统一管理
2. 数组的长度:数组中元素的个数
3. 数组的其他基本概念
数组的索引 -- index
数组的类型 -- type
数组的名称 – name
数组的声明
数组类型[ ] 数组名
4. 数组的创建
数组名 = new 数据元素类型[元素个数]
5. 数组的初始化
数组类型 数组名[ ] = { 元素1 ,元素2 ,…}
数组类型 数组名[ ] = new 数据类型[ ]{ 元素1 ,元素2 ,…}
6. 数组的访问
Java中,数组元素的下标从0开始
元素的下标可以是整型常量或整型表达式
赋值:数组名[元素下标] = 元素值
取值:数据元素类型 变量名 = 数组名[元素下标]
7. 数组的遍历
for(int i = 0;i<数组长度;i++){
数组名[i];
}
8. 多维数组创建
数组类型[ ] [ ] 数组名
9. 数组的复制
System.arraycopy(source,srcPos,dest,destPos,length)
复制source数组中从下标srcPos开始的length个元素到目标数组dest,并从目标数组的下标为destPos的位置开始储存
source: 源数组
srcPos: 源数组中的起始位置
dest: 目标数组
destPos:目标数组中的起始位置
length: 要复制的数组元素的个数
10. 数组的排序
Arrays.sort(数组名)
11. 对数组排序
Arrays.sort(数组名,fromIndex,toIndex)
对数组从下标为fromIndex到toIndex的数组排序(不包括下标为toIndex的元素)
7. 方法的创建和调用
1. 什么是方法
方法是完成某个功能的一组语句,通常将常用的功能写成一个方法
2. 方法的定义
[访问控制符] [修饰符] 返回值类型 方法名(参数列表){
方法体
}
3.修饰符:
public 、static 被称为修饰符(详见 https://www.cnblogs.com/zyx110/p/10621592.html)
4.返回值类型:
用来说明该方法运算结果的类型。如果返回其他类型,编译就可能出错
5.方法名:
它作为调用时引用方法的标识
6.参数列表:
方法的参数个数可以是0个到多个,每个参数前面要声明参数的数据类型;每个参数要用逗号分开。也可以一个参数都没有。
7. 方法体:
它是一个语句块,执行特定的功能操作。对于有返回值类型的方法,方法体当中最后一个语句是return关键字,它的作用是把方法的执行(运算)结果返回到方法外部。
8.return 表达式 :
这里,进一步分析,return后面的表达式就是方法的返回值。需要注意表达式的类型,必须与方法头中声明的“返回类型”相 匹配。
形式参数:在方法被调用时用于接受外部传入的变量
9.参数类型:
就是该形式参数的数据类型
10. 返回值:
方法在执行完毕后返回给调用它的程序的数据
11. 返回值类型:
方法要返回的结果的数据类型
12. 方法的分类
根据参数个数
无参方法
有参方法
根据返回值类型
有返回值方法
返回值类型可以是基本数据类型,也可以是引用数据类型
无返回值方法
void(void不可以省略,必须要写,用来占位)
13. 方法的调用
方法只有在被调用后才能生效
14. 方法的调用方法
无参方法的调用
方法名()
有参方法的调用
方法名(实参列表)
注:实参列表与定义方法时的形参列表需一致
15. 使用方法时的注意问题
形参必须注明数据类型
实参直接写,不需要类型声明
return只能返回一次
遇到return语句,方法执行结束,后续语句不执行
方法的返回值必须与声明中的返回值类型匹配
方法不能嵌套定义,但可以嵌套调用
16. 方法的重载
方法的重载就是在同一个类中允许同时存在一个以上同名的方法
17. 方法重载的规则
重载发生在一个类中
方法名称相同
方法的参数列表不同
参数个数不同`或者`参数类型不同
与返回值类型无关,可相同,也可以不同
18. 方法的重写
重写(rewrite)
对从父类中继承来的方法进行改造
在子类继承父类时发生
19. 方法重写的规则
方法名称相同
方法的参数列表相同(参数数量、参数类型、参数顺序都要相同)
方法的返回值类型相同
子类重写方法的访问权限要不小于父类中被覆盖方法的访问权限
Java匹马行天下之JavaSE核心技术——Java基础语法的更多相关文章
- Java匹马行天下之JavaSE核心技术——异常处理
Java匹马行天下之JavaSE核心技术——异常处理 异常的简介 在Java中,异常就是Java在编译.运行或运行过程中出现的错误. 程序错误分为三种:编译错误.运行时错误和逻辑错误 编译错误是因为程 ...
- Java匹马行天下之JavaSE核心技术——工具类
Java匹马行天之JavaSE核心技术——工具类 一.Object类 java.lang.ObjectObject类是所有类直接或间接的父类 常用的方法: toString():以字符串形式返回对象的 ...
- Java匹马行天下之JavaSE核心技术——注解
Java注解 一.什么是注解 注解(Annotation)相当于一种标记,在程序中加入注解就等于为程序打上某种标记,没有加,则等于没有任何标记,以后,javac编译器.开发工具和其他程序可以通过反射来 ...
- Java匹马行天下之JavaSE核心技术——面向对象
面向对象 注: 看此篇时强烈建议有一定的面向对象思想基础,有一定的基础后先翻到下面看第九条: 9.面向对象: 从未封装→封装→继承→多态→抽象类→接口的代码演变 按这个逻辑去看,,哪有不理解 ...
- Java匹马行天下之JavaSE核心技术——反射机制
Java反射机制 一.什么是反射? 在运行状态中,对于任意一个类,都能够获取到这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的方法和属性),这种动态获取的信息以及 ...
- Java匹马行天下之JavaWeb核心技术——JSP
JSP动态网页技术 一.JavaWeb简介 一.什么是JavaWeb? JavaWeb是用Java技术来解决相关web互联网领域的技术总称. 需要在特定的web服务器上运行,分为web服务器和web客 ...
- Java匹马行天下之JavaWeb核心技术——JSP(续一)
十二.JSP表单处理 我们在浏览网页的时候,经常需要向服务器提交信息,并让后台程序处理.浏览器中使用 GET 和 POST 方法向服务器提交数据. GET 方法 GET方法将请求的编码信息添加在网 ...
- Java匹马行天下——开篇
个人感言: 匹马行天下是我高中时候看过一部叫<九鼎记>的小说中的其中一个大章节标题,在整个这一章中,讲的是是主人公滕青山历经艰险,又心如磐石,一心修行,最后巅峰归来的故事.现在回想,依旧心 ...
- Java匹马行天下之新手学习目录
Java匹马行天下之新手学习目录 学习路线 [Java匹马行天下——Java学习路线] [Java匹马行天下——开篇学习计划] 基础篇 [Java匹马行天下之学编程的起点——编程常识知多少] [Jav ...
随机推荐
- Install weblogic in silent mode
使用静默(silent)模式来安装weblogic,在需要将安装脚本化,或无法使用图形界面的时候非常有用. 下面按照自己在实际工作中碰到的例子,来慢慢总结不同版本和平台weblogic的静默安装方法. ...
- 解决 jdk8 Illegal key size or default parameters 错误
网上搜到的答案如:https://blog.csdn.net/educast/article/details/81060085 大多是jdk1.6或1.7版本,有的jdk是1.8.99之前的版本,而 ...
- JVM系列2:垃圾收集器与内存分配策略
垃圾收集是一个很大话题,本文也只是看了深入理解Java虚拟机总结了下垃圾收集的知识. 首先按照惯例,先上思维导图: 垃圾收集简而言之就是JVM帮我们清理掉内存区域不需要的数据.它主要负责清理堆中实例对 ...
- XGBoost参数调优小结
https://mp.weixin.qq.com/s?__biz=MzU0MDQ1NjAzNg==&mid=2247485630&idx=1&sn=9edf2bfd771cf4 ...
- centos7-内核版本降级
1. 查看内核版本参考命令: [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) [roo ...
- python 网络编程 tcp和udp 协议
1. 网络通信协议 osi七层,tcp\ip五层 tcp\ip五层 arp协议:通过IP地址找到mac地址 2.tcp和udp的区别 tcp协议:面向连接,消息可靠,相对udp来讲,传输速度慢,消息是 ...
- 安装fftw到window(vs2010)及使用fftw库函数实现4096点fft变换计算
Windows下FFTW库的安装: 1. 从网站http://www.fftw.org/install/windows.html上下载最新的预编译文件: 32-bit version: fftw ...
- Python学习之MacBook Pro中PyCharm安装pip以及itchat
前言:Mac中自带的python没有用,自己安装了一个PyCharm,网上很多人说安装Itchat后会安装到自带的Python中去.本文记录怎么安装到自己安装的Python3.7中去.主要技术来源于h ...
- SQL Server 2000使用链接服务器
执行:安装盘\SQL2KSP4\install\instcat.sql 文件下载地址:http://download.csdn.net/detail/taomanman/5680765
- c#mysql批量更新的两种方法
总体而言update 更新上传速度还是慢. 1: 简单的insert 速度稍稍比MySqlDataAdapter慢一点 配合dapper 配置文件 <?xml version="1 ...