java速学_5分钟快速入门Java,不看真的可惜了

ab0b0999f3d8f662ab2c487cfc14509f.png

你好,世界!

源代码组织方式

Java程序由package+class组成,package对应目录的相对路径,class对应文件,如

9f4e11b30e9d856227994b828e580a12.png

关于class有如下几点规则:

文件的名字必须和class的名字一致(public级别的class名字)。

文件必须只包含一个public访问基本的class(可以包含多个非public级别的class)。

package名字必须和目录一致。

1

入口方法

App.java

d2fc7f2489f9dc5a7710cad39aeb03e7.png

2

最终的项目结构

ed882906bbe7ee4fbb9e43ef3d5b4534.png

3

数据类型

8种原子类型

整数类型:byte、short、int和long。

小数类型:float和double。

字符类型:char。

布尔类型:bool。

除此之外的是interface、class和array。

小数类型的常量默认是double类型,声明float类型的常量需要使用F作为后缀。

2267297ea332dcb82c97762cd9e5f54e.png

4

运算符

算术运算符:+、-、*、/ 和 %,两个整数相除,结果还是整数。

赋值运算符:=、+=、-=、*=、/=、%=、&=、|=、~=、^=、>>=、<<= 、 <<<=、++ 和 --。

比较运算符:==、!=、>、>=、< 和 <=。

逻辑运算符:&&、|| 和 !。

位运算符:&、|、~、^、>>、<< 和 <<

5

字符串

0fd06e8c0587a8784843675da3ce9a4d.png

为了高效的修改字符串Java引入了StringBuffer。

dc7df03b3b41ee1dd8784f3a9f44c197.png

6

数组

声明语法

DataType[] name 或 DataType name[]。

初始化语法

DataType[] name = new DataType[length]。

DataType[] name = new DataType[] { element1, element2, ...elementn }。

DataType[] name = { element1, element2, ...elementn }。

73903ac9cef4d1fc0d0f9772a7543605.png

多维数组

只有不等长多维数组DataType[][],没有DataType[xxx, xxx]。

控制结构

条件:if-else if-else、switch-case-default和三元运算符(?:)。

循环:while、do-while、for和foreach。

Labeled block。

02a2c9601fc64b197b581056cf52e9c3.png

最近觉得label是个不错的东西,最起码多了一种选择。

方法

Java支持变长方法参数。

867f48f00e5fcef4ed78da2a9ac92d59.png

7

b7e878154946e4b1fefaf61ae3d40cc8.png

注意:调用自身的构造方法是用this(xxx,xxx,...)来完成,且必须位于第一行。

静态成员

Java中类似静态构造方法的结构,称之为:静态初始化代码块,与之对应的是实例初始化代码块,见下例:

49130241dd42dd6aae7c643d1006ab69.png

8

继承

继承使用 extends,抽象类和抽象方法使用abstract声明,向下转型使用 (ChildType)instance,判断是否是某个类型使用 instanceof,见下例:

00965c3c0d29d7fd37bdd800cf0b295d.png

9

重写

Java中的重写规则比较灵活,具体如下:

除了 private 修饰之外的所有实例方法都可以重写,不需要显式的声明。

重写的方法为了显式的表达重写这一概念,使用 @Override进行注解。

重写的方法可以修改访问修饰符和返回类型,只要和父类的方法兼容(访问级别更高,返回类型更具体)。

可以使用final将某个方法标记为不可重写。

在构造方法中使用 super(xxx, xxx)调用父类构造方法,在常规实例方法中使用 super.method(xxx, xxx)调用父类方法。

Java不支持覆盖(new)。

15f892b0aca408c3a5d9e5d6e2886b9b.png

446dece91c9071f8b8a8a43856edbc02.png

10

包的名字和项目路径下的目录路径相对应,比如:项目路径为:C:\Study,有一个Java源文件位于:C:\Study\com\happyframework\study\App.java,那么App.java的包名字必须为:com.happyframework.study,且 App.java 的第一行语句必须为:package com.happyframework.study。

Java支持三种导入语法:

导入类型:import xxx.xxx.xxxClass。

导入包:import xxx.xxx.xxx.*。

导入静态成员:import static xxx.xxx.*。

f836d4f28f6f5d282a31529be9f177fb.png

11

访问级别

Java支持四种访问级别:public、private、protected 和 default(默认),类型和接口只能使用public 和 default,成员和嵌套类型可以使用所有,下面简单的解释一下 protected 和 default。

protected 修饰过的成员只能被自己、子类和同一个包里的(不包括子包)其他类型访问。

default 修改过的类型或成员只能被自己和同一个包里的(不包括子包)其他类型访问。

嵌套类

Java支持如下几种嵌套类:

nested class,定义在类型内部的类型。

static nested class,使用 static 声明的 nested class,static nested class 可以访问所有外部类的静态成员。

inner class,没有使用 static 声明的 nested class,inner class 可以访问所有外部类的实例成员,inner class 不能定义静态成员。

代码示例

8fa364ab3c1a57348cf0113623016193.png

9f1cf33ed789afa3caec6b9e654873aa.png

特殊的inner class:local class

6f0b973f6727a6a90ab781308eb0bf4b.png

除了inner class的规则之外,local class可以访问局部final变量,在Java8中有更多的改进。

特殊的local class:anonymous class

a12ec1c084aeccaa32e4a238ef95246f.png

12

常量

不废话了,直接看代码:

775b4165e072f76ff294dc89d1be5ac9.png

有一点需要注意的是:只有一种情况Java的常量是编译时常量(编译器会帮你替换),其它情况都是运行时常量,这种情况是:静态类型常量且常量的值可以编译时确定。

接口

Java的接口可以包含方法签名、常量和嵌套类,见下例:

9db96d1bff852c4b2f1106d28502b2ed.png

13

枚举

Java枚举是class,继承自java.lang.Enum,枚举中可以定义任何类型可以定义的内容,构造方法只能是private或package private,枚举成员会被编译器动态翻译为枚举实例常量,见下例:

1d56120cf986fec2e4d513df127e8f0d.png

调用枚举的构造方法格式是:常量名字(xxx, xxx),如果构造方法没有参数只需要:常量名子,如:

4529ff59b57b6b01dff657ea8ed63be6.png

14

异常

Java中的异常分为checked和unchecked,checked异常必须声明在方法中或被捕获,这点我觉得比较好,必定:异常也是API的一部分,见下例:

9b7ba4e8502a3864d9e66812ae0edabb.png

所有继承Exception的异常(除了RuntimeException和它的后代之外)都是checked异常。

15

装箱和拆箱

Java提供了原始类型对应的引用类型,在1.5之后的版本还提供了自动装箱和自动拆箱,结合最新版本的泛型,几乎可以忽略这块。

1aa2b864883a89b944c6fac13b123f85.png

注意:自动装箱和自动拆箱是Java提供的语法糖。

16

泛型

Java的泛型是编译器提供的语法糖,官方称之为:类型参数搽除,先看一下语法,然后总结一点规律:

泛型方法

测试代码

e920d76de4b04a69939b16f9aaaa53cf.png

调用泛型方法

5d37c85ef4e6c8c6ac3b96ef95d09e68.png

输出的结果是

41cc4a9503bf89a775af96e795b9fe32.png

17

泛型类

测试代码

9bda02f37fc94a2845edccd2c382aead.png

调用代码

623ee8bdfe21d0a59f02df621dc92774.png

输出结果

5229658adeb475e92377b4b53647241e.png

18

泛型接口

测试代码

24ccd25935b4213788ddc6d51c5423b3.png

调用代码

0496a07e66a9323ae73fc961fa0c73ab.png

输出结果

025348e0994fd2b1ba74d9c8f89e9855.png

19

类型参数约束

测试代码

7945ca1a51de5ae6666779b0b269479c.png

调用代码

bec79192d6c9059ebdb1a1562a565ec5.png

输出结果

787e4a5df620c96c4034c24439ffa5d6.png

类型搽除过程

将泛型定义中的类型参数去掉。

ab8a8964856c05bf102e9d10caf70ff6.png

2.将T换成extends指定的约束类型,默认是Object。

2ab6155fc8e74b05e244a1af6299f070.png

3.如果有非泛型类型继承或实现了泛型基类或接口,而且进行了重写,根据情况,编译器会自动生成一些方法。

f964d11cef08d40cda12a962f0e352ab.png

4.根据泛型参数的实际参数搽除调用代码。

这里说的不一定正确,特别是Java泛型的约束支持&(如:可以约束实行多个接口),不过过程估计差别不大,我没有看Java语言规范,这里只是大概的猜测。

然后今天就讲到这里啦,大家记得点赞收藏,分享转发,关注小姐姐哦!

-END-

加下面这个双鱼小姐姐微信

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328449.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

与微软.NET创始人Scott Guthrie面对面,“红衣教主”亲身传授推动成功转型的洪荒之力

金秋九月&#xff0c;是个即将收获的季节。微软 2016 企业技术决策论坛将于2016年9月21日在北京召开。届时&#xff0c;技术大咖Scott Guthrie 将现身论坛&#xff0c;和嘉宾们现场交流互动。 说起 Scott Guthrie&#xff0c;技术领域的人一定不陌生&#xff0c;Scott Guthrie …

第5步 配置pom.xml文件 pom文件好了就是jar包引入好了

<project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><!-- 自动生成的部分…

Tomcat启动超时问题Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds

转载自 Tomcat启动超时问题Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds使用Eclipse启动Tomcat时出现启动超时的问题如下所示&#xff1a;Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds . If the server …

xrkmonitor监控mysql_xrkmonitor字符云监控系统

下面我们对xrkmonitor字符云监控系统文件阐述相关使用资料和xrkmonitor字符云监控系统文件的更新信息。xrkmonitor字符云监控系统xrkmonitor字符云监控系统是一个国产开源监控系统&#xff0c;专注于通过监控系统对软硬件系统进行掌控以及系统相关数据的可视化&#xff0c;通过…

IDE:Eclipse查看Servlet源码

转载自 IDE&#xff1a;Eclipse查看Servlet源码一、源码下载 1、打开tomcat官网&#xff1a;http://tomcat.apache.org/ , 点击右侧下载菜单&#xff08;以tomcat-7为例&#xff09;进入下载页面&#xff1a;http://tomcat.apache.org/download-70.cgi 2、在下载页面&…

eclipse中格式化代码快捷键Ctrl+Shift+F失效的解决办法

转载自 eclipse中格式化代码快捷键CtrlShiftF失效的解决办法很长一段时间我的eclipse都有个毛病&#xff0c;就是当我要格式化代码的时候&#xff0c;右键-source-format能够起效&#xff0c;但ctrlshiftf不好使了。可以基本断定是快捷键与别的软件冲突了&#xff0c;但一直也…

解决eclipse中jsp没有代码提示问题

转载自 解决eclipse中jsp没有代码提示问题刚装的可以开发jsp的eclipse&#xff0c;结果写jsp的时候没有代码提示&#xff0c;在网上找了半天&#xff0c;各种解决办法都不行&#xff0c;后来在stackoverflow上看到一个解决办法解决了&#xff0c;其他的方法就不说了&#xff…

Cactus在jexus上安装

Cactus基于之前简单后台管理的改良版本&#xff0c;完善了权限管理&#xff0c;为后续的扩展和管理做了铺垫。 完全开放代码&#xff0c;可供学习交流 目前采用MVC4AutofacDapper制作而成&#xff0c;集成一个简单的Blog和权限系统 通过修改配置可以切换数据源&#xff08;目前…

第6步 项目包结构

dao->service->controller util&#xff1a;工具包 vo: value-object/view-object pojo(简单的数据库对象)->vo(value-object 封装简单对象)‘ ’pojo->bo(bussiness-object)->vo(view-object 视图对象) common&#xff1a;常量 全局异常的公共类

在eclipse中关于Spring和Hibernate 的XML配置如何提示类的包路径的办法

转载自 在eclipse中关于Spring和Hibernate 的XML配置如何提示类的包路径的办法我们在配Spring 或者Hibernate 配置文件的时候&#xff0c;发觉在配置类路径的时候&#xff0c;在双引号下是无法提示包的路径的&#xff0c;这样子很麻烦&#xff0c;不过在MyEclipse中是有得提示…

第7步 mybatis-generator dao层生成器

自动生成 pojo mapper&#xff08;dao层实现&#xff09; dao 第一步 配置这个插件在pom中 第二步复制 generateConfig.xml <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD M…

eclipse xml文件中按没有提示

转载自 eclipse xml文件中按没有提示 方案1:在xml文件上右击-->open with ,看一下xml文件的默认打开方式。我遇到的是在Layout下的xml文件里没有提示信息。查看了一下xml的默认打开方式不是Android Layout Editor&#xff0c;这时需要修改xml文件的默认打开方式&#xff1a…

第8步 第2剑客 mybatis plugin 第三剑客 page helper csdn每天最多发多少文章 是20篇,刚刚才试了。2014

安装插件 安装重启idea 分页插件 github 上有网址 https://github.com/pagehelper/Mybatis-PageHelper aop 将我们的sql再执行一次

解决“Maven项目中的Dynamic Web Module 3.0 requires Java 1.6 or newer”问题

转载自 解决“Maven项目中的Dynamic Web Module 3.0 requires Java 1.6 or newer”问题错误描述 当创建有动态web模块3.0支持的项目时&#xff0c;需要用到Java版本不低于1.6。 在Markers标签页中显示的错误为&#xff1a;Dynamic Web Module 3.0 requires Java 1.6 or newer…

java中configmanager_Spring4新的javaConfig注解

1、RestControllerspring4为了更方便的支持restfull应用的开发&#xff0c;新增了RestController的注解&#xff0c;比Controller注解多的功能就是给底下的RequestMapping方法默认都加上ResponseBody注解&#xff0c;省得自己再去每个去添加该注解。2、Configuration这个标注该…

第9步 spring 配置 springmvc配置

spring配置 有5个网址 springboot 再讲一遍 spring的学习最好的方法是运行 官方demo 学习它里面的配置 。 我们不可能一下子理解spring里面的源码 spring配置直接复制好了 视频老师也是从官方demo中复制过来的 直接复制 **********************************…

eclipse开发jsp默认编码设置

转载自 eclipse开发jsp默认编码设置 在eclipse中新建一个jsp页面时&#xff0c;一般默认的编码不是utf-8&#xff0c;而我们一般项目都是统一采用utf-8编码&#xff0c;如果要一个个改很麻烦&#xff0c;大家一般都会想到如果更改默认设置。网上搜索一般是在&#xff1a;wind…

java threadlocal 缺点_Java的ThreadLocal如何在后台实现?

小编典典这里的所有答案都是正确的&#xff0c;但是有些令人失望&#xff0c;因为它们多少掩盖了聪明ThreadLocal的实现是多么的明智。我只是在寻找源代码&#xff0c;ThreadLocal并且对它的实现方式印象深刻。天真的实现如果我要求您ThreadLocal在javadoc中描述的给定API的基础…

第10步 (1)logback.xml日志配置(2) ftp(上传文件)服务器配置(3) idea注入和自动编译配置(4)项目提交gitee(5)fe助手和restlet client

****************************************************************************************************************************************** 1.直接复制 logback.xml 比较简单 <?xml version"1.0" encoding"UTF-8"?> <configuratio…

第11步 git推送失败 用户模块开发

别忘了git push ************************************************************************************************************************************* 1. 用户模块开发 共11个接口 用户 status 0 则是正确响应 其他1等是错误 用户信息是session中拿过来的 use…