- 博客(56)
- 资源 (1)
- 收藏
- 关注
原创 Mysql练习
提前准备的表 学生表 教师表 课程表 成绩表 练习开始 1. 查询1号课程比2号课程成绩高的所有学生的学号; select a.S_id from (select score , S_id from Score where C_id = 1) a, (select score , S_id from Score where C_id = 2) b where a.score > b.score and a.S_id = b.S_id; 2.查询平均...
2021-01-30 21:18:51
422
原创 Android冒险之旅-32-Bundle
介绍 Bundle,是Android开发中的一个类,用于Activity之间传输数据用。 传递基本数据类型 1. 发送数据 //使用Bundle封装基本数据类型 Bundle bundle = new Bundle(); bundle.putString("name","alin"); bundle.putInt("age",22); //
2021-01-28 14:14:04
223
原创 Android冒险之旅-31-Handler
一、Handler的定义 主要接受子线程发送的数据, 并用此数据配合主线程更新UI。 解释:当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件, 进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操作,例如: 联网读取数据, 或者读取本地较大的一个文件的时候,你不能把这些操作放在主线程中,如果你放在主线程中的话,界面会出现假死现象, 如果5秒钟还没有完...
2021-01-28 13:46:27
415
原创 Android冒险之旅-30-四大组件
目录 1. 活动(Activity) 定义: 生命周期: 四种启动方式: 2. 服务(Service) 定义: 生命周期: Start: Bind: 3.广播接受者(Broadcast Receive) 4.内容提供者(Content Provider) END 1. 活动(Activity) 定义: Activity是Android的四大组件之一。是用户操作的可视化界面;它为用户提供了一个完成操作指令的窗口。当我们创建完毕Activity之后,需要调用setContentV.
2021-01-28 13:26:41
228
1
原创 Java编程入门-10-Java作用域
ps:还有需要注意的是,这些修饰符只能修饰成员变量,不能修饰局部变量。 private和protected不能用来修饰类 END
2021-01-28 12:46:48
166
原创 Java编程入门-9-Java常见的集合框架
目录 1.Java常见的集合框架 2.list、set、map的区别 3.ArrayList、LinkedList、Vector的区别 4.Map实现类介绍: 5.Set实现类介绍: END 1.Java常见的集合框架 2.list、set、map的区别 List和Set存储单列数据,Map存储键值对; List中存储的数据是有顺序的,并且值允许重复; Set中存储的数据是无顺序的,并且不允许重复(Set集合是根据hashcode来进行数据存储的,所以位置是固定的,但是这个...
2021-01-28 12:29:28
194
原创 Android冒险之旅-29-误删还原
误删了layout文件夹,里面有四十多个布局文件,还没发撤销,还好稳住心态找了以下补救措施: 选中项目 --> 右键 --> local history --> show history --> 选中一个版本右键 --> revert END
2021-01-23 00:23:18
265
原创 Android冒险之旅-28-PopupWindow的简单使用
目录 效果图 Activity代码 布局 END 效果图 Activity代码 @OnClick({R.id.search_type}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.search_type: //调用显示PopupWindow showPopupWin...
2021-01-19 23:02:13
194
原创 Android冒险之旅-27-关闭软键盘
//关闭键盘 public void CloseKeyBoard() { View view = getWindow().peekDecorView(); if (view != null) { InputMethodManager inputmanger = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); inputmanger.hide...
2021-01-19 21:04:58
214
转载 Android冒险之旅-26-DrawerLayout的简单使用
目录 效果图 布局 Activity END 效果图 布局 <?xml version="1.0" encoding="utf-8"?> <androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns.
2021-01-19 13:42:34
309
1
原创 Android冒险之旅-25-解决xml中自定义View的属性不提示的问题
问题:在XML中不自动提示自定义View的自定义属性 产生原因:可能对原本的自定义View类升级或改名之后 导致类名与初始定义的属性集合名不一致从而产生的问题 END
2020-12-19 18:14:42
554
3
原创 Android冒险之旅-24-自定义View--涟漪+分裂+自定义点击行为
RippleView3效果图 结合打印日志观看 用户点击中心圆输出0 点击分裂对象输出分裂对象对应序号 说明 在之前的RippleView2的基础上 增加了分裂效果 我称之为RippleView3 上一篇博客连接- -> RippleView2 RippleView3升级功能: 中心圆点击监听 被点击之后会自动分裂 同时标识:clickResult=0 分裂对象点击监听 被点击之后会复原到涟漪扩散状态 同时...
2020-12-19 16:30:33
337
2
原创 Android冒险之旅-23-自定义View--涟漪+分裂效果
效果图 说明 在之前的RippleView的基础上 增加了分裂效果 我称之为RippleView2 升级功能: 分裂两个 水平堆成分布 分裂三个 三角形分布 分裂四个 对称分布 复原 回到涟漪荡漾状态 基础功能: 中心圆控制 开启 / 关闭 / 修改颜色 涟漪控制 开启 / 关闭 / 修改颜色 初始半径控制 涟漪初始大小与中心圆大小一致 涟漪扩散速度控制 实际上就是一个...
2020-12-17 21:08:47
376
原创 Android冒险之旅-22-自定义View--涟漪效果|波浪效果
效果图 希望是你们心心念念的有涟漪、波浪效果的自定义View 代码 人狠话不多 注释超级详细 不要被长度吓到 开放性很高 所有属性基本都可以修改 因此GetSet方法很多 /** * create by 星航指挥官 * create on 2020/12/13 * 不过是大梦一场空 * 课不过是孤影照惊鸿 */ public class RippleView extends View { //中心点坐标 private float x = 0; priva.
2020-12-16 23:39:05
538
原创 SpringBoot后端接收参数的几种方式
1.无注解 1.1 接口写法 /* * 无注解 * GET请求时直接读取url中的参数 * POST请求时接收 application/x-www-form-urlencoded 和 multipart/form-data * form表单提交默认使用application/x-www-form-urlencoded * 处理长字节文件时应使用multipart/form-data * 获取参数的时候可以自动装入对..
2020-11-25 16:58:45
5338
1
原创 Android冒险之旅-21-okhttp的使用与自定义接口监听
1. 添加依赖 // Okhttp框架 implementation 'com.squareup.okhttp3:okhttp:4.9.0' 2. 同步请求 /* * 同步请求 * */ public void synRequest(String url,Map<String, Object> params) { // 创建OkHttpClient对象 OkHttpClient okHttpClient
2020-11-24 21:09:05
465
原创 SpringBoot服务端集成腾讯云短信服务
1. 预先准备 申请签名 申请短信模板 添加应用 详细操作请参阅快速入门 2. 添加依赖 <!--腾讯云短信服务--> <dependency> <groupId>com.github.qcloudsms</groupId> <artifactId>qcloudsms</artifactId> <version>1.0.6</version> ...
2020-11-23 16:24:25
317
原创 Android冒险之旅-20-创建随机验证码
/** * create by 星航指挥官 * create on 2020/11/23 * 不过是大梦一场空 * 不过是孤影照惊鸿 */ public class VerificationCode { /** * 创建指定数量的随机字符串 * @param isNumber 是否是数字 * @param length * @return */ public static String getVerificationCode(bo.
2020-11-23 16:23:06
163
原创 SpringBoot服务端集成极光推送
1. 添加依赖 <!-- 极光推送 --> <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jpush-client</artifactId> <version>3.4.6</version> </dependency> <!--<dependency>--> <
2020-11-22 18:13:03
1769
1
原创 SpringBoot解决跨域请求问题最新版
/** * create by 星航指挥官 * create on 2020/11/22 * 不过是大梦一场空 * 不过是孤影照惊鸿 */ @Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewCo.
2020-11-22 17:07:40
245
原创 Android冒险之旅-19-极光推送的简单使用
极光推送简介 极光推送,英文简称 JPush,是一个面向普通开发者开放的,免费的第三方消息推送服务。 自动集成 1. 配置 jcenter 支持 在Project 级 build.gradle 中配置jcenter 支持。(新建 project 默认支持) buildscript { repositories { jcenter() } ...... } allprojects { repositories { jcenter()
2020-11-21 23:36:27
890
原创 linux中Nginx的配置与安装
1.安装Nginx的依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 2.为Nginx创建一个目录 //创建一个文件夹 cd /opt mkdir nginx //进入该目录 cd nginx 2.下载Nginx的tar包 wget http://nginx.org/download/nginx-1.13.7.tar.gz 3.解压 tar -zxvf linux-nginx-1.10.2.tar.gz
2020-11-06 11:44:39
227
原创 SSM的优雅整合
1.创建Maven-Web项目 2.创建优雅的目录结构 可能现在你的目录是这样的 我们把它变成这样 具体操作方式 然后在src/main/java目录下创建各个代码层对应的包(按需) 3.配置Tomcat 4.poom.xml添加依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://
2020-10-14 23:45:24
205
原创 Java开发框架-MyBatis的简单使用
简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。 发展 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software fou
2020-09-27 18:00:37
202
原创 Java编程入门-8-Java方法的定义重载和递归调用
方法的定义 [修饰符列表] 返回值类型 方法名(参数类型 参数名,……){ 方法体; return 返回值; } []是中括号,以上括号[]里面的内容表示不是必须的,是可选的。 参数也不是必须的,同时返回类型为void时不需要returen语句 示例: public static int paramAdd(int x,int y){ int a = x+y; return a; } 方法的重载 修饰符、返回值与是否重载无关 只要方法
2020-09-18 18:01:10
134
原创 Java编程入门-7-Java选择结构与循环结构
选择结构 if选择 int a = 1, b = 2; //单if if(a==b){ System.out.println("表达式为真"); } //if-else if (a==b){ System.out.println("a==b表达式为真"); }else { System.out.println("a=
2020-09-18 16:43:03
158
原创 Java编程入门-6-Java运算符
算数运算符 + - * / %(取余) //加 int paramAdd(int x,int y){ return x+y; } //减 int paramSubtraction(int x,int y){ return x-y; } //乘 int paramMultiplication(int x,int y){ return x*y; } //除 int par
2020-09-18 16:04:26
166
原创 Java编程入门-5-Java数据类型划分
基本数据类型 整型: byte、short、int、long 浮点型: float、double 布尔型:boolean 字符型:char 数据类型 位数 默认值 取值范围 举例说明 byte(位) 8 0 -2^7 - 2^7-1 byte b = 10; short(短整数) 16 0 -2^15 - 2^15-1 short s = 10; int(整数) 32 0 -2^31 - 2^31-1 int i = 10; long(长整数) 64 0 -2^63 - 2^
2020-09-17 15:59:42
119
原创 Java编程入门-4-Java标识符与关键字
标识符 Java 中标识符是为方法、变量或其他用户定义项所定义的名称。标识符可以有一个或多个字符。在 Java 语言中,标识符的构成规则如下: 标识符的第一个符号为字母、下划线和美元符号 后面可以是任何字母、数字、美元符号或下划线。 Java 区分大小写,因此 lin 和 Lin 是两个不同的标识符。 提示:标识符命名时,切记不能以数字开头,也不能使用任何 Java 关键字作为标识符,而且不能赋予标识符任何标准的方法名。 关键字 关键字是对编译器有特殊意义的固定单词,不能在程序中做其他目的使
2020-09-17 15:29:32
198
原创 Java编程入门-3-Java中的注释方式
1. 单行注释 //单行注释只能注释一行内容,用在注释信息较少得地方 2. 多行注释 /* 多行注释可以注释多行 一般首行和尾行没有信息 纯粹好看 */ 3. 文档注释 /** *文档注释也可以注释多行 *一般用于类、方法、变量之上 描述其作用 */ ...
2020-09-17 15:19:29
96
原创 Java编程入门-2-搭建Java开发环境
1. JDK简介 JDK是Java Development Kit 的缩写,中文称为Java开发工具包,由SUN公司提供。它为Java程序开发提供了编译和运行环境,所有的Java程序的编写都依赖于它。 使用JDK可以将Java程序编写为字节码文件,即.class文件。 JDK安装后各个文件夹包含的具体内容为: bin:开发工具,包含了开发、执行,调试Java程序所使用的工具和实用程序以及开发工具所需要的类库和支持文件。 jre: 运行环境,实现了Java运行环境。是运行Java程序所必须的环
2020-09-17 15:05:04
204
原创 Java编程入门-1-Java语言简介
1. Java发展简史 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言。希望用于控制嵌入在有线电视交换盒、PDA等的微处理器 1994年将Oak语言更名为Java 1998年JDK1.2时,更名为Java 2 Platform 分为标准版JavaSE,企业版JavaEE,微型版JavaME Java 既安全、可移植,又可跨平台,而且人们发现它能够解决Internet 上的大型应用问题 2. Java语言的部分特点 简单:没有多继承、指针等概念。学习起来简单,使用方
2020-09-17 14:30:02
208
原创 Java命名规范
项目名:全部小写 包名:全部小写 类名:首字母大写,其余组成词首字母依次大写 变量名:首字母小写,其余组成词首字母依次大写 方法名:首字母小写,其余组成词首字母依次大写 常量名:全部大写 所有命名规则必须遵循以下规则 : 名称只能由字母、数字、下划线、$符号组成. 不能以数字开头. 名称不能使用Java中的关键字. 坚决不允许出现中文及拼音命名. kee ...
2020-09-16 17:38:05
131
原创 IDEA项目打包Jar包
直接上图看具体操作 解释 Main Class : 选择主类,即主方法(程序入口)所在的类 OutPut Dirrectory : Jar包输出路径,上图操作完成后可在该路径下找到打包好的Jar包
2020-09-16 10:12:25
192
原创 Android冒险之旅-18-手机与平板适配的思路
1. 总体思路 为主页面设计两个同名布局,分别为单页布局(手机),双页布局(平板)。单页布局存放在layout目录下,双页布局存放在layout-sw600dp目录下。运行时系统会根据具体设备选择合适的布局。在java代码中通过一个特殊的控件ID(比如双页有单页没有的)来判断当前显示的是单页模式还是双页模式。如果是双页模式,那么资源直接加载,如果是单页模式,那么某个点击操作触发之后跳转到另一页面。 本文案例:郭霖大神第四章碎片的最佳实践,一个简易版新闻应用。 2. 主页面布局(单页) layout
2020-08-31 12:07:21
334
原创 Android冒险之旅-17.5-ButterKnife在碎片中使用的坑
为什么这篇文章在冒险之旅的系列中不是18而是17.5,因为这篇文章记录一个让我贼难受的坑。 报错: android.view.InflateException: Binary XML file line #7: Error inflating class fragment 还有 Attempt to invoke virtual method ‘void androidx.recyclerview.widget.RecyclerView.setLayoutManager(androidx.
2020-08-31 01:41:34
319
原创 Android冒险之旅-17-Fragment碎片的使用
效果图 话不多说,直接上代码,注释详细 1. activity_fragment.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas
2020-08-30 16:35:24
197
原创 Android冒险之旅-16-模拟聊天
使用RecycleView显示聊天消息,使用Nine-patche图片作为聊天气泡,实现我和我自己聊天。素材可以去阿里巴巴矢量图标库下载,然后可以通过我上上篇博客学习RecycleView的使用,通过上一篇博客学习制作Nine-Patch图片。 效果图 1. activity_chat.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com.
2020-08-30 14:38:23
201
原创 Android冒险之旅-15-Nine-Patch图片
Nine-Patch 当图片的宽高不足填满控件时会被均匀拉伸,但是很多时候我们想要自定义拉伸区域,比如对话框气泡,我们可以自己制作一张Nine-Patch图片,来控制拉伸区域。 创建方式 1.在AndroidStudio2.3开始,对任意一张PNG图片右击→Create9-Patch file。 2.打开创建的Nine-Patch图片 3.鼠标左键在图片边缘拖动即可添加黑色的区域 左边框和上边框控制拉伸区域 下边框和右边框控制内容显示区域 kee ...
2020-08-30 12:02:46
207
1
原创 Android冒险之旅-14-RecycleView(线性,网格,瀑布流)
RecycleView 本文介绍 实现了RecycleView的三种布局,线性布局,网格布局,瀑布流布局 适配器和Activity基本每条语句都有注释 还有适配器中,在两个方法中设置点击事件的比较: 在Adapter.onBindViewHolder()中设置点击事件: 优点:可以直接获取位置,有position参数 缺点:会为当前显示的以及缓存的View都设置一个Listener回调,浪费内存。 在onCreateViewHolder()中设置点击事件:
2020-08-29 23:43:02
348
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人