You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
6.5 KiB

3 years ago
---
title: java一些知识点
author: TianZD
top: true
cover: true
toc: true
mathjax: false
summary: java学习中的一些知识点记录,粗略学了一下,没有参考价值
tags:
- java
- 学习笔记
categories:
- java
reprintPolicy: cc_by
abbrlink: 89d8704
date: 2022-04-29 11:04:44
coverImg:
img:
password:
---
[toc]
# java中int值2147483647+2=-2147483647
nt的取值范围为:-231——231-1,即-2147483648——2147483647
因为一个数据类型的最大值和最小值是一个循环,也就是说在最大值的基础上再扩大数值或者在最小值的基础上再缩小数值,会跳到相反的最值上面。
# 重载和重写
重写(Override)是父类与子类之间多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Override)。
重载(Overload)是一个类中多态性的一种表现。如果在一个类中定义了多个同名的方法,它们参数列表不同,则称为方法的重载(Overload)
区别:重载实现于一个类中;重写实现于子类中。
重载(Overload):是**一个类中多态性**的一种表现,指同一个类中不同的函数使用**相同的函数名**,但是**函数的参数个数或类型不同**。**可以有不同的返回类型**;可以有不同的访问修饰符;可以抛出不同的异常。调用的时候**根据函数的参数来区别不同的函数**。
重写(Override): 是父**类与子类之间的多态性**,是子类对父类函数的重新实现。函数名和参数与父类一样,子类与父类**函数体内容不一样**。子类**返回的类型必须与父类保持一致**;子类方法**访问修饰符的限制一定要大于父类**方法的访问修饰(public>protected>default>private);子类重写方法一定不能抛出新的检查异常或者比被父类方法申明更加宽泛的检查型异常。
# 一个java文件中多个类
一个.java文件中可以有很多类。不过注意以下几点:
* public 权限的类只能有一个(也可以一个都没有,但最多只有1个)
* 这个.java文件的文件名必须是public类的类名(一般的情况下,这里放置main方法是程序的入口。)
* 若这个文件中没有public的类,则文件名随便是一个类的名字即可
* 用javac 编译这个.java文件的时候,它会给每一个类生成一个.class文件
# Java中DAO层、Service层和Controller层的区别
DAO层:
DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封装了增删改查基本操作,建议DAO只做原子操作,增删改查。
Service层:
Service层叫服务层,被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制。
Controler层:
Controler负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。
总结:
个人理解DAO面向表,Service面向业务。后端开发时先数据库设计出所有表,然后对每一张表设计出DAO层,然后根据具体的业务逻辑进一步封装DAO层成一个Service层,对外提供成一个服务。
SSM是sping+springMVC+mybatis集成的框架。
MVC即model view controller。
model层=entity层。存放我们的实体类,与数据库中的属性值基本保持一致。
service层。存放业务逻辑处理,也是一些关于数据库处理的操作,但不是直接和数据库打交道,他有接口还有接口的实现方法,在接口的实现方法中需要导入mapper层,mapper层是直接跟数据库打交道的,他也是个接口,只有方法名字,具体实现在mapper.xml文件里,service是供我们使用的方法。
mapper层=dao层,现在用mybatis逆向工程生成的mapper层,其实就是dao层。对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,而service层是针对我们controller,也就是针对我们使用者。service的impl是把mapper和service进行整合的文件。
(多说一句,数据持久化操作就是指,把数据放到持久化的介质中,同时提供增删改查操作,比如数据通过hibernate插入到数据库中。)
controller层。控制器,导入service层,因为service中的方法是我们使用到的,controller通过接收前端传过来的参数进行业务操作,在返回一个指定的路径或者数据表。
**1、dao层**
dao层主要做数据持久层的工作, 负责与数据库进行联络的一些任务都封装在此 ,dao层的设计 首先 是设计dao层的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可以再模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,dao层的数据源配置,以及有关数据库连接参数都在Spring配置文件中进行配置。
**2、service层**
service层主要负责业务模块的应用逻辑应用设计。同样是 首先设计接口 , 再设计其实现类 ,接着再Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用service接口来进行业务处理。service层的业务实, 具体要调用已经定义的dao层接口 ,封装service层业务逻辑有利于通用的业务逻辑的独立性和重复利用性。程序显得非常简洁。
**3、controller层**
controller层 负责具体的业务模块流程的控制 ,在此层要 调用service层的接口来控制业务流程 ,控制的配置也同样是在Spring的配置文件里进行,针对具体的业务流程,会有不同的控制器。我们具体的设计过程可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块。 这样不仅使程序结构变得清晰,也大大减少了代码量。
**4、view层**
view层与控制层结合比较紧密,需要二者结合起来协同开发。view层主要负责前台jsp页面的显示。
**5、它们之间的关系:**
Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而 Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。 每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。