JavaSE_06_面向对象(上)(类与对象)
01、面向过程与面向对象 何谓“面向对象”的编程思想? 首先解释一下“思想”。 先问你个问题:你想做个怎样的人? 可能你会回答:我想做个好人,孝敬父母,尊重长辈,关爱亲朋… 你看,这就是思想。这是你做人的思想,或者说,是你做人的原则。做人有做人的原则,编程也有编程的原则。这些编程的原则呢,就是编程思想。 面向过程(POP) 与面向对象(OOP) 面向对象:Object Oriented Programming 面向过程:Procedure Oriented Programming 123456789101112131415161718192021222324252627282930313233343536/* * 一、学习面向对象内容的三条主线 * 1.Java 类及类的成员:属性、方法、构造器、代码块、内部类 * 2.面向对象的三大特征:封装、继承、多态性、(抽象性) * 3.其它关键字:this、super、static、final、abstract、interface、package、import 等 * * 二、人把大象装进冰箱 * 1.面向过程:强调的是功能行为,以 ...
JavaSE_05_数组
01、 数组的概述 12345678910111213141516171819202122/* * 一、数组的概述 * 1.数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合, * 并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。 * * 2.数组的相关概念: * >数组名 * >元素 * >角标、下标、索引 * >数组的长度:元素的个数 * * 3.数组的特点: * 1)数组属于引用类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型。 * 2)创建数组对象会在内存中开辟一整块连续的空间; * 3)数组的长度一旦确定,就不能修改; * 4)数组是有序排列的。 * * 4.数组的分类: * ① 按照维数:一维数组、二维数组、三维数组…… * ② 按照数组元素类型:基本数据类型元素的数组、引用类型元素的数组 * */ 02、 一维数组的使用 12345678/* * ① 一维数组的声明和初始化 * ② 如何调用数组的指定位置的元素 * ③ 如何获取数组的长度 * ④ 如何遍历数组 * ⑤ 数组元 ...
JavaSE_04_程序流程控制
01、 程序流程控制概述 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即: - 顺序结构 - 分支结构 - 循环结构 1、顺序结构 程序从上到下逐行地执行,中间没有任何判断和跳转。 2、分支结构 根据条件,选择性地执行某段代码。 有if…else和switch-case两种分支语句。 3、循环结构 根据循环条件,重复性的执行某段代码。 有while、do…while、for三种循环语句。 注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。 02、 顺序结构 Java中定义成员变量时采用合法的前向引用。如: 03、分支语句 2.1、分支语句1:if-else结构 1、if-else使用说明: 条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量; 语句块只有一条执行语句时,一对{}可以省略,但建议保留; if-else语句结构,根据需要可以嵌套使用; 当if-else结构是“多选一”时,最后的else是可选的,根据需要可 ...
JavaSE_03_运算符
01、运算符 运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。 算术运算符 赋值运算符 比较运算符(关系运算符) 逻辑运算符 位运算符 三元运算符 1.1、算术运算符 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879/*运算符之一:算术运算符+ - * / % (前)++ (后)++ (前)-- (后)-- */class Day3Test{ public static void main(String[] args) { //除号:/ int num1 = 12; int num2 = 5; int resule1 = num1 / num2; System.out.println(resule1); //2 int result2 = num1 / num2 * num2; Syst ...
JavaSE_02_变量、标识符、保留字、进制
01、关键字与保留字 1、关键字(keyword)的定义和特点 定义:被 Java 语言赋予了特殊含义,用做专门用途的字符串(单词) 特点:关键字中所有字母都为小写 官方地址: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html 2、保留字(reserved word) Java 保留字:现有 Java 版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字goto、const。 02、标识符 2.1、什么是标识符(Identifier) Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符 技巧:凡是自己可以起名字的地方都叫标识符。 2.2、定义合法标识符规则【重要】 **由 26 个英文字母大小写,0-9,_或$ 组成** 数字不可以开头。 标识符不能包含空格。 不可以使用关键字和保留字,但能包含关键字和保留字。 Java 中严格区分大小写,长度无限制。 2.3、Java 中的名称命名规范 1、Java 中的名称命名规范: ...
JVM系列-02-1、内存与垃圾回收篇---类加载子系统
类加载子系统 ✨✨内存结构概述 完整图如下: 如果自己想手写一个 Java 虚拟机的话,主要考虑哪些结构呢? 类加载器 执行引擎 类加载器子系统的加载过程 类加载器子系统负责从文件系统或者网络中加载 class 文件,class 文件在文件开头有特定的文件标识。 ClassLoader 只负责 class 文件的加载,至于它是否可以运行,则由 Execution Engine 决定。 加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是 class 文件中常量池部分的内存映射) class file 存在于本地硬盘上,可以理解为设计师画在纸上的模板,而最终这个模板在执行的时候是要加载到 JVM 当中来根据这个文件实例化出 n 个一模一样的实例。 class file 加载到 JVM 中,被称为 DNA 元数据模板,放在方法区。 在 class 文件 -> JVM -> 最终成为元数据模板,此过程就要一个运输工具(类装载器 Class Loader),扮演一个快递员的角色。 ...
JavaSE_01_Java语言概述
01、 软件开发介绍 软件开发软件,即一系列按照特定顺序组织的计算机数据和指令的集合。软件有系统软件和应用软件之分。 人机交互方式 图形化界面(Graphical User Interface GUI)这种方式简单直观,使用者易于接受,容易上手操作。 命令行方式(Command Line InterfaceCLI):需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦,需要记录住一些命令。 Pascal之父Nicklaus Wirth:“Algorithms+DataStructures=Programs” 1.1、常用的DOS命令 ⊞+R,一起按下,输入cmd,可以打开dos界面。 dir :列出当前目录下的文件以及文件夹 md:创建目录 rd :删除目录 cd:进入指定目录 cd… : 退回到上一级目录 cd:退回到根目录 del :删除文件 exit : 退出dos 命令行 补充:echo javase>1.doc 常用快捷键 ← →:移动光标 ↑↓:调阅历史操作命令 Delete和Backspace:删除字符 注意:在输入dos命令时,要是用 ...
SSM整合篇之MyBatis(2022.07)
一、MyBatis 1、MyBatis简介 1.1、MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。 iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。 iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。 1.2、MyBatis特性 1) MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架 2) MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 3) MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old JavaObjects,普通的Java对象)映射成数据库中的记录 4) MyBatis 是一个 半自动的ORM ...
MyBatis_06_缓存
缓存介绍 MyBatis官方文档 MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。缓存可以极大的提升查询效率。 MyBatis系统中默认定义了两级缓存,一级缓存和二级缓存。 默认情况下,只有一级缓存( SqlSession级别的缓存,也称为本地缓存)开启。 二级缓存需要手动开启和配置,他是基于namespace级别的缓存。 为了提高扩展性。 MyBatis定义了缓存接口Cache。我们可以通过实现Cache接口来自定义二级缓存 一级缓存介绍 一级缓存 一级缓存(local cache),即本地缓存,作用域默认为sqlSession。当 Session flush 或 close 后, 该Session 中的所有 Cache 将被清空。 本地缓存不能被关闭, 但可以调用 clearCache() 来清空本地缓存, 或者改变缓存的作用域. 在mybatis3.1之后, 可以配置本地缓存的作用域. 在 mybatis.xml 中配置 - - - - localCacheScope MyBatis利用本地缓存机制( Local Ca ...
MyBatis_05_分页插件pagehelper
分页插件pagehelper [[toc]] 分页插件使用步骤 添加依赖 123456<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --><dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.0</version></dependency> 配置分页插件 在MyBatis的核心配置文件中配置插件 1234<plugins> <!--设置分页插件--> <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin></plugins> 12345678910111213141516 ...