- 博客(37)
- 收藏
- 关注
原创 任意复杂度四则算术运算的代码实现
四则运算的基本方法是使用双栈实现中缀表达式转后缀表达式、后缀表达式的计算结合,然而对于带有小数及复杂括号嵌套的式子而言仅是如此远远不够,因为算式的初始形态是字符串,计算机并不认识字符串中的算术运算组成,例如"3.1415*(1.221-(6.487+3.223)/(9.145-5.34)+2.27)-(7.18+8.24)*0.15"这个字符串中,计算机无法自主的剥离哪些是操作数哪些是运算符。 笔者的做法是首先定义算术单元类(ArithmeticUnit)用于表示一个算术单元,之后将原始式子字符串转
2021-11-19 22:59:17
737
原创 SpringBoot项目笔记
Bean初始化调用 Spring容器底层使用反射机制创建Bean实例,因此可在Bean的空参构造器中执行某些初始化操作,但如果在空参构造器中调用属性注入相关的内容,将出现异常:@RestControllerpublic class UserController { /* Spring容器先创建Bean实例,再使用Bean的实例进行注入 */ @Autowired private UserService userService; /* Bean实例的创建在调用空参构造器
2021-10-28 17:43:27
491
原创 MyBatis项目笔记
TypeHandler TypeHandler用于JDBC类型与Java类型的转换,例如java.sql.Date与java.util.date的转换,MyBatis默认实现了很多常用的TypeHandler,向数据库中每个列中写入或读出数据时都会先经过TypeHandler的处理。BaseTypeHandler TypeHandler是MyBatis中处理Java与数据库类型转换的接口,可以通过实现此接口自定义类型处理器,但自定义类型处理器是并不是直接实现TypeHandler接口,而是继承Ba
2021-10-28 17:41:10
248
原创 SpringBoot基础及使用
文章目录概述介绍`HelloWorld`创建工程添加`dao`层方法添加`service`层方法添加`SpringBoot`依赖添加`controller`层方法添加启动类项目部署服务器访问核心配置配置文件文件格式默认配置文件服务器参数默认参数自定义参数静态资源拦截器定义拦截器定义配置类字符编码`MyBatis`整合环境搭建添加依赖环境配置`dao`层逻辑编写`entity`编写`dao``SQL`映射`service`层逻辑编写`service`属性注入`controller`层逻辑编写`controll
2021-10-28 17:35:17
871
原创 Spring和SpringMVC
文章目录概述介绍环境搭建创建项目添加依赖编写`Bean`添加配置文件实例化`Bean``IOC`概念配置文件`Bean`管理构造器注入无参构造索引注入类型注入参数名注入引用注入`Set`注入注入特殊值注入`null`注入特殊符号注入级联属性注入数组注入`List`注入`Map``Bean`的作用域`Bean`的生命周期自动装配`Bean`的别名导入外部`Bean`注解`Bean`管理组件扫描示例注解说明扫描过滤器属性注入`@Value``@Autowired``@Qualifier``@Resource`完
2021-04-16 18:37:28
127
原创 Maven学习笔记
文章目录概述介绍`Maven`仓库多模块构建一致的项目结构插件机制`Maven`的安装与配置`Maven`下载`Maven`基础配置修改仓库位置`Maven`基础`Maven`仓库`Maven`坐标仓库镜像`Maven`项目结构目录结构`pom.xml`介绍`Maven`构建项目常用`Maven`命令`IDEA`集成`Maven`普通`Java`项目`JavaWeb`项目`Maven`配置`Tomcat``Maven`多模块项目多模块构建多模块依赖多模块运行`Maven`深入依赖管理依赖传递依赖冲突可选依赖
2021-04-10 19:46:44
1803
原创 JavaWeb基础
文章目录`Tomcat`服务器概述`Tomcat`安装`Tomcat`基础配置`Tomcat`项目部署`Tomcat`目录介绍项目部署方式`IDEA`整合`Tomcat``HTTP`协议`HTTP`请求`GET`请求`POST`请求常用请求头`HTTP`响应`MIME`类型`Servlet`概述`Servlet`接口介绍`Servlet`接口的简单使用使用注解进行`Servlet`映射`Servlet`对象生命周期`Servlet`相关接口`ServletConfig`接口常用的方法`getServletC
2021-04-07 22:50:00
2757
原创 MyBatis基础
文章目录`MyBatis`基础配置文件全局配置文件`SQL`映射文件基础`API``SqlSessionFactory`接口`SqlSessionFactoryBuilder`类`SqlSession`接口`Resources`类示例实例表和映射类配置文件连接数据库并执行`SQL`语句接口式编程创建查询接口绑定接口查询示例接口式编程总结全局配置文件深入`dtd`约束`properties`标签`settings`标签`typeAliases`标签`package`标签`typeHandlers`标签`env
2021-03-19 12:13:33
499
原创 前端基础(HTML,CSS,JavaScript,jQuery)
文章目录`HTML`基础`HTML`文件的基本结构标签属性转义字符元素之间的关系常用标签基本列表图片表格嵌套页面表单`form`提交表单的属性:`GET`请求的特点`POST`请求的特点表单的提交`CSS`基础基本语法`HTML`引用`CSS`的方式样式的继承选择器标签名选择器`id`选择器`class`选择器组合选择器复合选择器通配选择器后代元素选择器子元素选择器兄弟元素选择器伪类选择器否定伪类选择器属性选择器选择器的优先级常用样式`JavaScript`概述第一种编写位置第二种编写位置第三种编写位置语法
2021-03-19 12:09:57
690
原创 JDBC学习笔记
文章目录概述使用`JDBC`前的准备`MySQL`驱动获取数据库连接`Driver`接口介绍获取连接方式一参数`url`参数`info`示例获取连接方式二获取连接方式三连接方式四增删改查概述`SQL`注入`PreparedStatement`接口增删改操作获取连接增添数据修改数据删除数据增删改步骤总结增删改示例查询操作基本查询步骤结果集处理`ResultSet`接口介绍结果集元数据使用反射机制处理结果集查询步骤总结查询示例使用泛型实现通用查询`Blob`数据`MySQL`中的`Blob`类型说明`Blob`
2021-02-28 17:14:19
546
原创 MySQL完整学习笔记
文章目录前言`MySQL`的相关概念`MySQL`的特点`MySQL`的安装和配置(使用`ZIP Archive`免安装方式)`MySQL`的安装`MySQL`基本操作`MySQL`基本语法`MySQL`语法规范常用命令关于库关于表`DQL`语法基础查询条件查询排序查询常见函数字符函数数学函数日期函数其它函数流程控制函数分组函数分组查询连接查询概述`SQL92`语法`SQL99`语法子查询`where/having`之后的子查询`select`之后的子查询`from`之后的子查询`exists`之后的子查询
2021-02-01 23:31:30
1393
原创 C语言中的 String API
文章目录概述`String`类型字符串常量与字符数组字符串常量字符数组字符串的只读性字符串`API`字符串基本操作字符串转换字符串转换为数值类型数值类型转换为字符串概述String类型 c语言中String类型的具体定义为char* .因此可以声明String类型为:typedef char* String;字符串常量与字符数组字符串常量 以"abcdef"形式出现的为字符串常量,字符串常量的字面类型为char*。字符串常量存储在内存中的常量存储区中。字符串常量的标志是结尾存在不可见字符'\
2020-08-19 11:18:57
414
原创 STM32F4 UART基础(HAL库)
文章目录概述`UART`初始化`UART`参数初始化`UART`句柄`UART`初始化结构体`UART`参数初始化函数`UART`时钟初始化`UART_GPIO`初始化`UART`中断配置`Msp`初始化函数`UART`无中断收发`UART`发送数据`UART`发送数据`API``UART`无中断发送示例`UART`接收数据`UART`接收数据`API``UART`无中断接收数据示例`UART`中断收发`UART`发送中断`UART`发送中断使能`UART`发送完成中断回调`UART`发送中断示例注意:`U
2020-07-31 17:19:36
2602
原创 STM32F4 TIM更新中断与PWM输出(HAL库)
文章目录概述`TIM`基本初始化`TIM`时钟初始化`TIM`参数初始化`TIM`初始化函数`TIM`句柄`TIM`初始化结构体`Msp`初始化回调函数`TIM`使能`TIM`计数器操作`TIM`更新中断`NVIC`配置`TIM`中断使能中断服务函数通用入口函数中断回调函数`TIM`更新中断示例`PWM`输出概述`PWM`输出初始化`PWM`输出时钟使能`GPIO`初始化`PWM`参数初始化`PWM`通道初始化`PWM`通道的开启/关闭`PWM`输出波形参数计算`PWM`基频`PWM`占空比`PWM`输出示
2020-07-27 16:29:07
9695
2
原创 STM32F4xx NVIC与EXTI中断(HAL库)
文章目录概述`NVIC`配置中断优先级分组设置中断优先级使能中断抢占优先级和响应优先级`GPIO`配置`GPIO`初始化`EXTI`中断事件名判断触发中断的`GPIO_Pin`中断服务函数中断回调函数概述通用入口函数中断回调函数总结示例概述 使用STM32F407的EXTI中断功能需要使用HAL库中的stm32f4xx_hal_exti.h和stm32f4xx_hal_exti.c. STM32F4的每个GPIO都可设置为 EXTI中断 功能。STM32F4有16路EXTI中断线EXTI0~E
2020-07-21 15:13:18
3140
原创 STM32F4xx GPIO基础(HAL库)
文章目录`GPIO`初始化`HAL`库初始化`RCC`时钟使能`Pin`初始化`GPIO_InitTypeDef``HAL_GPIO_Init()``GPIO`初始化示例`GPIO`基本电平设置常用设置示例GPIO初始化HAL库初始化/* 初始化HAL库,进行任何操作之前必须初始化HAL库 */HAL_Init();RCC时钟使能/* GPIOx时钟使能(注意,开头是两个"_",即"__") */__HAL_RCC_GPIOx_CLK_ENABLE();/* GPIOX时钟失能(注意,开
2020-07-18 10:49:10
681
1
原创 Lambda表达式与引用表达式
文章目录概述函数式接口概述`@FunctionalInterface`Java核心函数式接口①消费型①供给型③函数型④断定型`Lambda`表达式`Lambda`表达式的形式`Lambda`表达式的使用注意`Lambda`表达式使用示例引用表达式方法引用概述方法引用表达式的形式方法引用示例构造器引用概述构造器引用的形式数组引用概述数组引用的形式概述 Lambda表达式用于创建函数式接口(FunctionalInterface)的匿名实现类对象。 Lambda表达式有两种形式:Lambda表达式与引用表达
2020-07-04 14:04:19
716
原创 IO流-对象流
文章目录概述序列化概述`ObjectOutputStream`构造器常用方法反序列化概述`ObjectInputStream`构造器常用方法对象可序列化概述`Serializable`对象可序列化的注意:使用对象流实现本地名单概述 对象流是处理流的一种,用于将内存中的对象写入到数据源,并且能够将对象从数据源还原到内存。序列化概述 将对象写入到数据源的过程称为对象的序列化。对象的序列化过程中,对象转化为与平台无关的二进制序列,通过对象流将二进制序列写入本地磁盘,或者将二进制序列传输到另一网络节点。
2020-07-01 01:26:36
479
原创 IO流-节点流和处理流
文章目录流的分类流的抽象基类流的具体分类文件流概述文本文件与非文本文件文本文件非文本文件字节流`FileInputStream`常用构造器常用方法`FileOutputStream`常用构造器常用方法使用流实现字节文件的复制字符流`FileReader`常用构造器常用方法`FileWriter`常用构造器常用方法使用流实现字节文件的复制处理流缓冲流字节缓冲流`BufferedInputStream``BufferedOutputStream`字节型文件流和缓冲流的效率对比字符缓冲流`BufferedRead
2020-06-30 02:28:54
1407
原创 IO流-File类
文章目录概述`File`类的构造器`File(String pathname)``File(String parent,String child)``File(File parent,String child)``File(URI uri)`路径分隔符层级分隔符路径间分隔符`File`类中的常用方法对于抽象路径名的操作对于实际文件的操作路径过滤器`FilenameFilter``FileFilter`概述 File类位于java.io包下。File类的对象是文件或目录 路径名 的抽象表示。File类的作
2020-06-27 00:04:09
288
原创 常用类-集合-Collections
文章目录概述`Collections`中常用的方法对集合元素的基本操作对集合元素的排序操作对集合的线程安全转化概述 Collections是专用于集合操作的工具类,可对List,Set和Map进行排序、线程安全化转换等操作。Collections中常用的方法对集合元素的基本操作/* 将指定的多个数据添加至指定集合。 如果集合因调用添加而改变,返回true. */public static <T> boolean addAll(Collection<? super T>
2020-06-21 23:36:36
120
原创 Java集合-Map的应用
文章目录概述`Entry``Map`的存储结构`Map`中的常用方法`Map`中的常用方法`Map`的遍历`keySet()``values()``entrySet()``HashMap`概述`LinkedHashMap``TreeMap`概述`TreeMap`的自然排序`TreeMap`的定制排序概述 Map集合是 双列集合,使用Key-Value形式存储数据。Map的特性是:Key的无序性、不重复性,Value的可重复性。 Map是泛型接口://K是Key的类型,V是Value的类型public
2020-06-21 16:21:04
153
原创 Java集合-Collection
文章目录概述`Collection`中的常用方法扩展`Arrays.asList()``Iterator``List``ArrayList``LinkedList``Vector``Set``Set`集合添加数据的过程`HashSet``LinkedHashSet``TreeSet`概述`TreeSet`的自然比较`TreeSet`的定制比较概述 集合是Java用于处理数据的工具。集合中的数据存储在内存,不具有持久性。 Java中的集合分为 单列集合 与 双列集合。单列集合 存储纯粹
2020-06-18 17:46:19
184
原创 Java比较器
文章目录`Comparable`自然排序数组的自然排序`Comparator`定制排序数组的定制排序Comparable自然排序 Comparable接口排序方式称为 自然排序。实现Comparable接口的类必须实现compareTo()方法:public class CompareTest implements Comparable<T>{ @Override public int compareTo(T t){}} a.compareTo(b)返回1,系统认为
2020-06-18 15:34:51
138
原创 Java多线程基础
文章目录概述创建线程继承`Thread`类实现`Runnable`接口实现`Callable<>`泛型接口代码示例`Callable<>`泛型接口`Thread`类中的常用方法①`public static Thread currentThread()`②`public final String getName()`③`public final void setName(String name)`④`public static void yield()`⑤`public final
2020-05-26 12:27:25
146
原创 Java泛型
文章目录概述泛型类泛型类的声明创建泛型类对象泛型类的继承注意:泛型方法概述示例注意:通配符的使用概述注意概述 泛型(generic type)指只有在创建对象或者调用方法时才能确定的数据类型。如Constructor<T>中的T即为泛型。可以使用泛型的结构有:①泛型类;②泛型接口;③泛型方法;④泛型形参。泛型类泛型类的声明public class Person<T,K,V> { public Person(){}}注意:①泛型参数可以不止一个。②泛型
2020-05-13 09:58:14
124
原创 Java注解与注释
文章目录JDK内置注解`@Override``@Deprecated``@SuppressWarnings`元注解概述`@Retention``@Target``@Documented``@Inherited`自定义注解通过反射机制获取`RUNTIME`注解定义注解`Person`类获取注解的方法获取类的注解获取属性的注解获取构造器的注解获取方法的注解获取参数注解**注意:**说明注释概述常用的说明注释标签`TODO`示例JDK内置注解@Override @Override的作用是标记重写父类的方法,
2020-05-11 14:32:31
1760
原创 Java反射机制
文章目录动态语言`reflect`概述`java.lang.Class`类运行时类获取`Class`类实例①调用运行时类的`.class`属性:②通过运行时类的对象获取:③调用Class类的静态方法`forName(String classPath)`:④使用类的加载器`ClassLoader`:获取运行时类的结构获取运行时类的`Field`①获取属性的方法②获取属性的修饰符:`getModifiers()`③获取属性的数据类型:`getType()`④获取属性的名称:`getName()`获取运行时类的`
2020-05-09 17:04:53
128
原创 SQLite
目录SQLiteDatabase打开/创建数据库建表插入数据修改数据删除数据删表CursorCursor的获取Cursor的常用方法SQLiteOpenHelper:SQLiteOpenHelper类中的常用方法:SQLite数据共享的限制SQLiteDatabase SQLiteDatabase类用于打开(不存在即创建)数据库、操作数据库中的数据。打开/创建数据库openOrCreate...
2020-04-18 17:09:08
498
原创 RadioButton的创建、监听与继承
目录RadioButton的创建使用xml布局创建使用Java代码创建RadioButton的监听RadioButton的继承RadioButton的创建使用xml布局创建使用Java代码创建RadioButton的监听RadioButton的继承...
2020-04-06 17:35:35
1759
原创 CheckBox的创建、监听与继承
目录简介CheckBox的创建使用xml布局创建使用Java代码创建CheckBox的监听CheckBox的继承简介CheckBox是复选按钮。CheckBox的创建使用xml布局创建使用Java代码创建CheckBox的监听CheckBox的继承...
2020-04-03 18:10:19
2254
原创 Button的创建、监听与继承
目录简介Button的创建使用XML布局创建使用Java代码创建Button的常用属性Button的监听OnClickListenerOnLongClickListener设置监听器的方式Button的继承简介 Button继承自TextView。Button提供的基本响应有:单击(Click)和长按(LongClick)。可以通过触摸事件管理实现自定义响应,例如双击、滑动等。Button的...
2020-04-01 16:09:39
1133
原创 使用shape自定义控件形状
目录概述子元素与属性android:shape属性solidsizecornersstrokegradientpaddingring常用属性代码示例概述 笔者认为,android应用UI设计应该从容大方,简洁优雅,应尽量避免繁琐多余的形状线条。因此笔者建议使用以shape自定义View控件的外观。 建议理由:shape只能自定义简单形状和颜色填充,然而却有完美的边缘渲染,不会出现边缘锯齿或者...
2020-03-22 19:25:53
1425
原创 重写onBackPressed()
目录概述onBackPressed()的原定义onBackPressed()的重写重写onBackPressed()的完整代码概述 onBackPressed()是用户点击Back键时系统调用的方法,用于从当前Activity返回到上一个Activity。在代码中调用此方法也会起到“按”Back键的效果。可以重写此方法以达到自定义目的。onBackPressed()的原定义 onBackP...
2020-03-18 19:06:24
1989
2
原创 Activity返回数据
目录概述StartActivityForResult()onActivityResult()完整的Activity切换发起方代码setResult()完整的Activity切换接收方代码概述 可以直接使用startActivity(Intent intent)方法从一个Activity跳转至另一个Activity,但有时候需要Activity返回数据,例如: Activity_A开启了Act...
2020-03-18 17:39:25
1013
原创 Intent传递对象
Intent传递对象Serializable接口概述被传递对象类实现Serializable接口传递对象Serializable接口概述 对于写代码而言,使用Intent在Activity之间传递对象,最简单的方式就是使被传递对象的类实现Serializable空接口。被传递对象类实现Serializable接口import java.io.Serializable;public...
2020-03-18 12:03:01
2128
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人