Java难绷知识02-抽象类中只能有或者必须有抽象方法吗以及抽象类的细节探讨
Java难绷细节02—抽象类中只能有抽象方法吗
首先回答标题抛出的问题——False
显然,有抽象方法的类是抽象类,但是,抽象类中只能有抽象方法吗?
抽象类可以包含抽象方法,也可以包含具体方法
如果一个类包含至少一个抽象方法,用abstract关键字修饰,那么这个类必须被声明为抽象类。
抽象类除了可以有抽象方法外,还可以包含具体的方法,即有方法体的方法。
一个类用abstract修饰,那它就是抽象类了,但是不是说抽象类中必须有抽象方法,如果一个类像接口那样所有方法都有具体的实现,也可以用abstract修饰为抽象类
那么反过来想,抽象方法只能写在抽象类中,但是抽象类中不一定要有抽象方法
一个包含了抽象方法和具体方法的抽象类 123456789public abstract class Shape { // 抽象方法 public abstract double getArea(); // 具体方法 public void displayInfo() { ...
Servlet与会话管理
...
Java注解之自定义注解
注解的基本结构
以重写为例子了解基本结构
12345678910111213141516171819202122232425package java.lang;import java.lang.annotation.*;/** * Indicates that a method declaration is intended to override a * method declaration in a supertype. If a method is annotated with * this annotation type compilers are required to generate an error * message unless at least one of the following conditions hold: * * <ul><li> * The method does override or implement a method declared in a * supertype. *...
Java注解与Annotation类
了解注解
Java 注解(Annotation)又称 Java 标注,是 JDK5.0
引入的一种注释机制。是提供一种为程序元素设置元数据的方法,这些信息可以被编译器、开发工具或运行时环境读取和处理。
(程序元素:接口、类、属性、方法等; 元数据:描述数据的数据)
关键特性:
注解本身不包含业务逻辑,但可以通过反射机制在运行时获取并处理
注解不影响程序本身的执行,但可以通过工具影响程序的行为
注解可以包含命名参数,这些参数可以有默认值
其实就是写在接口、类、属性、方法上的一个标签,或者说是一个特殊形式的注释,普通注释只是一个注释,而注解在代码运行时是可以被反射读取并进行相应的操作,而如果没有使用反射或者其他检查,那么注解是没有任何真实作用的,也不会影响到程序的正常运行结果。
Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc
不同,Java 标注可以通过反射获取标注内容。
在编译器生成类文件时,标注可以被嵌入到字节码中。Java
虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义
Java...
Servlet与http
软件架构与网络通信
软件架构:
B/S:浏览器端-服务器端(JavaEE体系)
客户端不用再去开发,开发更加快速
C/S:客户端-服务器端
资源分类:
静态资源:所有用户访问后得到的结果是一样的,称为静态资源
如html css js
动态资源:每个用户访问相同资源后,得到的结构可能不一样,称为动态资源。动态资源被访问后,需要先转换为静态资源,再返回给浏览器
如 servlet php jsp
网络通信三要素:
IP:电子设备在网络中的唯一标识
端口:应用程序在计算机中的唯一标识
传输协议:规定了通信的规则
基础协议:tcp udp
image-20250413200701460
image-20250413200701460
http概述
http:超文本传输协议
传输协议:定义了客户端和服务器端通信的时候发送数据的格式
特点: - 基于TCP/IP的高级协议 - 默认端口号是80 -
基于请求响应模型,一次请求对应一次响应...
JavaWeb-http
HTTP请求
客户端–>请求–>服务器
超文本传输协议(Hypertext Transfer
Protocol,HTTP)是一个简单的请求-响应协议,是用于从万维网(WWW:World
Wide Web )服务器传输超文本到本地浏览器的传送协议。
HTTP是基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件,
查询结果等)。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。
以请求百度为例
1234Request URL: https://www.baidu.com/ 请求地址Request Method: GET 请求方法get/postStatus Code: 200 OK 状态码Remote Address: 36.152.44.96:443 远程地址ip+端口
12345Accept: text/htmlAccept-Encoding: gzip, deflate,...
把Hexo博客配置到Github Pages下
使用 Hexo+GitHub 搭建个人博客
前情提要
你需要自己去安装nodejs和git的环境,因为Hexo 基于
Node.js,搭建过程中还需要使用 npm(Node.js 已带) 和
git,因此先搭建本地操作环境,安装 Node.js 和 Git。
这种教程csdn一搜一大堆啊,基本照着做都是下一步和最后的配置环境变量
Node.js:https://nodejs.org/zh-cn
Git:https://git-scm.com/downloads
安装完成后,Win+R 输入 cmd 并打开,依次输入
node -v、npm -v 和 git --version
并回车,出现程序版本号即可。
然后你需要自己去注册一个GitHub账号,这里强烈建议设置SSH密钥
安装Hexo
新建一个文件夹用来存放 Hexo 的程序文件,如 Hexo-Blog
安装Hexo
使用 npm 一键安装 Hexo 博客程序:
注意:建议之后所有使用命令行安装操作都使用 管理员模式下的cmd
1npm install -g...
Hexo根目录下的_config.yml配置文件
我们在使用hexo初始化一个项目的时候,在根目录下会有一个配置文件_config.yml,这个文件配置了所写博客里面的内容,我们从根目录的该文件来说明每个配置的作用
头注释
_config.yml文件在头部会有一些注释,Hexo Configuration下的两行表示hexo文档的相关文档,Docs指的是hexo的文档,Source指的是hexo的GitHub源码,方便供他人参考查阅
123# Hexo Configuration## Docs: https://hexo.io/docs/configuration.html## Source: https://github.com/hexojs/hexo/
博客网站相关
Site下面是网站相关的一些信息配置
12345678# Sitetitle: Hexosubtitle: ''description: ''keywords:author: John Doelanguage: entimezone:...
markdown常用语法
markdown常用语法
标题
123456# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题
#后必须要有空格 12345还可以在文本下方添加任意数量的 == 号来标识一级标题,或者 -- 号来标识二级标题。Heading level 1===============Heading level 2--------------- 在实际渲染中,‘#’
号数量对应标题级别,一个 ‘#’ 是一级标题,两个 ‘#’
是二级标题,以此类推。
#的叠加可以很多,但是当过多之后,会变的比正常字体还要小,可以利用这个特性
## 段落和换行 #### 换行
句子末尾双空格代表换行。或者多个空格进行换行
貌似也可以
#### 段落 处理段落就是用空白行将一行或多行文本进行分割
注意:不要用空格(spaces)或制表符( tabs)缩进段落。
## 强调 123456*斜体文本* 前后各添加一个星号或下划线 _斜体文本_**粗体文本** 前后各添加两个星号或下划线 ...
Servlet学习之核心接口,工作原理和配置
什么是Servlet
运行在服务器端的程序
servlet是一个接口,定义了Java类被浏览器访问到的规则(接口)
Servlet是用java编写的服务器端的程序,主要是交互式的浏览和修改数据,生成动态Web内容,在JavaEE平台上,处理TCP连接,解析HTTP协议这些底层工作统统扔给现成的Web服务器去做,我们只需要把自己的应用程序跑在Web服务器上
Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
Struts2的核心用的是Filter(过滤器),而SpringMVC的核心用的就是Servlet。
123456789101112131415// WebServlet注解表示这是一个Servlet,并映射到地址/:@WebServlet(urlPatterns = "/")public class HelloServlet extends HttpServlet { protected void...