- 博客(49)
- 资源 (4)
- 收藏
- 关注
原创 Android面试题
1.Service启动方式startService①.定义一个类继承service②.在manifest.xml文件中配置该service③.使用context的startService(intent)启动该service④.不再使用时,调用stopService(Intent)停止该服务bindService①.创建bindService服务段,继承自service并在类中,创建.........
2019-08-29 17:26:51
1778
原创 HQL初步了解占位符
HQL是一种面向对象的查询语言,其中没有表和字段的概念,只有类,对象和属性的概念。格式:from + 类名 + 类对象 + where + 对象的属性在HQL中有两种方法实现占用符方法使用 ? 使用?设置参数占位符,之后通过setString()和setInteger()等方法为其赋值。如: @Autowiredprivate EntityManager em;private List q
2017-07-20 15:24:16
879
原创 服务端文件上传测试
在前后端分离的情况下如何保证服务端文件上传代码是否编写成功,这里用到一个简单的html页面,如下图: 代码的实现这里只需要替换的你要测试文件上传的API地址,源码如下:<!DOCTYPE html><html lang="en"><head> <title>Getting Started: Serving Web Content</title> <meta htt
2017-07-20 10:18:39
1172
原创 MariaDB简单介绍
概述 MariaDB数据库管理系统是MySQL的一个分支,MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,
2017-07-20 09:46:09
1183
原创 IDEA生成patch和使用patch
工作中用到的补丁大致可以分为两种,一种是patch文件,即补丁文件拿过来利用某些命令将这个补丁打入当前代码中,另外一种是修改前和修改后的文件对比包,这个对比包可以让我们快速查看到修改点的同时看到修改的上下文。这里如何用IDEA来生成patch和使用patch。 生成Patch 这里直接上图看的直观点: 、 使用Patch 一样直接上图,如下图:
2017-07-20 08:46:57
32066
3
转载 Android知识积累
1. android studio的使用,gradle构建不同版本apkstudio中文社区:http://www.android-studio.org/构建不同版本apk:https://www.zhihu.com/question/22842123Gradle命令:https://segmentfault.com/a/1190000002464822http://www.ope
2017-07-14 09:45:24
451
原创 MapStruct实体间转换快速入门
简介 MapStruct是一个代码生成器的工具类,简化了不同的Java Bean之间映射的处理,所以映射指的就是从一个实体变化成一个实体。在实际项目中,我们经常会将PO转DTO、DTO转PO等一些实体间的转换。在转换时大部分属性都是相同的,只有少部分的不同,这时我们可以通过mapStruct的一些注解来匹配不同属性,可以让不同实体之间的转换变的简单。 MapStruct官网地址: h
2017-07-13 14:55:23
15821
3
原创 Spring 启动时报No active profile set, falling back to default profiles default
这在Spring程序启动时没有找到默认的配置文件所引发的错误,默认文件application.yml如下图: 一般在项目中都会有多个,如有正式环境、测试环境等。如下图: 根据上面这种多个配置的只需要IDEA配置下,如下面三张图:第一步 第二步第三步配置好后,就会发现程序可以正常启动了
2017-07-11 16:12:29
88849
4
原创 IDEA自动生成serialVersionUID
serialVersionUID的作用 简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。(InvalidCastExcept
2017-06-23 10:48:25
891
原创 MySQL中的UUID外部取值时错误
在 MySQL 中,可以有如下几种途径实现唯一值:自增序列UUID() 函数程序自定义 MySQL 实现了 UUID,并且提供 UUID() 函数方便用户生成 UUID。 SELECT UUID()===> 3525f31e-6bbb-423b-92f5-9ef63110c2f7 在上面 MySQL 的 UUID() 函数生成中,针对UUID产生的值组成部分,分别如下:
2017-06-22 14:59:20
1136
原创 CheckStyle提高代码质量
介绍 CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱出来。 现在就来看看CheckStyle,从安装、checkstyle规范的编写及配置。安装CheckStyle插件 要使用 checkstyle 需要安装一个 插件 CheckStyle
2017-06-16 15:55:30
7716
原创 Docker windows安装及遇到的坑爹问题
什么是Docker Docker官网解释:https://www.docker.com/what-docker Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。 运用场景 web应用的自动化打包
2017-06-09 16:24:05
53799
2
原创 Spring Boot链接数据库操作及配置
本文将对在spring Boot构建的应用中,基于MySQL数据库的JPA连接的配置。 属性配置文件(application.properties)spring.jpa.show-sql=truelogging.level.org.springframework.data=DEBUGspring.jpa.hibernate.ddl-auto=nonespring.jpa.database
2017-06-09 16:08:09
5549
原创 java后端Spring POST请求
在Java后端中POST请求有很多种方法,这里介绍三种方式:普通方法@RestController@RequestMapping(value = "/user")public class UserController { ....../*** 直接传入参数**/ @RequestMapping(value = "/save/{name}/{address}",method = Requ
2017-06-05 20:40:30
23577
1
原创 学习Spring JPA时报的Not supported for DML operations 错误
在运行JPA修改数据代码报 Not supported for DML operations 错误 @Query(value = "update User user set user.address = :address where user.id = :id ") void findByUpdateUser(@Param("id") int id,@Param("address
2017-06-03 20:53:29
23852
2
原创 MySQL安装及遇到的问题
这里主要是针对MySQL在windows操作系统上的一些安装及遇到的问题 下载安装包 下载安装包地址:https://dev.mysql.com/downloads/mysql/ 在这里你可以选择你需要的版本,这里我们就选择windows 64位的下载 跳转到下载界面,这时你会发现要登录才能下载 ,其实下面有No thanks, just start
2017-06-03 12:37:27
696
原创 SpringBoot、JPA及MVC的学习
之前一直在做移动端Android开发,其实一直以来心里有种想学下服务端开发。就在端午节快到之际公司上面下达一个命令之后不做移动方面的开发了,公司问我是否转Java后端,还是说继续做移动端开发,要对立的IOS做前端开发。当时还是那一瞬间的懵逼的,等我回神过来这不是一个学后端开发的一个很好的机会吗,不过IOS选择离我们而去是我们有些伤感。就这样就开始了Java后端开发旅程,当我看了一两天服务端代码后,一
2017-06-03 11:32:08
625
原创 Android studio运行常见小问题
ADB连接失败 AS有时运行APP时会报下面的错,但是手机是连着的。如图: 解决方法:把Enable ADB Integration 打上勾,在 Tools-> Android -> Enable ADB Integration Log信息不能正常显示打印 解决办法:打开Android Device Monitor,在Tools-> Android
2017-05-27 17:29:54
464
原创 IDEA自定义新建文件自动产生的userName
主要是由于本人不喜欢代码里有黄色警告等来写的。刚刚新建一个类文件时生成的头部会有很大一块黄色警告,如图: 这里自定义名字和头部 ,在IDEA环境中去设置,File->Settings->File and Code Templates->Include->File Header:修改${USER}为自定义名字,如下图 : 再新建类文件就是这样如图: 还可以配置idea的头部注释格式,去设置
2017-05-26 16:55:10
3570
原创 初探Kotlin
序言 自从上个礼拜北京时间5月18日 Google在I/O大会 上宣布将Kotlin语言作为安卓开发的一级编程语言。Kotlin由JetBrains公司开发,与Java 100%互通,并具备诸多Java尚不支持的新特性。至此也瞬间成为程序猿间的话题。什么是Kotlin Kotlin是一门与Swift类似的静态类型JVM语言,由JetBrains设计开发并开源。与Java相比,Kot
2017-05-24 17:32:17
724
原创 Kotlin初步代码编写
类和构造函数 Kotlin创建类的方式与Java类似,如创建Person类: class Person{ var name: String? = "" var age: Int = 0}可以看到,Kotlin的变量声明方式略有些不同。另外,为了实现“空安全”,Kotlin对可以为空的变量和不可以为空的变量作了区分。在上述代码中,变量age不可为空,而?表明变量nam
2017-05-24 17:24:27
1784
原创 Android 沉浸状态栏
大家既然能找到这篇文章,相信大家对沉浸状态栏这个词并不陌生了吧,这里就不过多的文字介绍,不懂的可以上网去查什么是沉浸状态栏 。这里直接上代码实现: import android.app.Activity;import android.content.Context;import android.graphics.Color;import android.os.Build;import an
2017-05-19 16:34:44
288
原创 Android软键盘一些处理
不自动弹出软键盘,带有EditText控件的在第一次显示的时候会自动获得focus,并弹出键盘,如果不想自动弹出键盘,有两种方法如下:方法一:在mainfest文件中把对应的activity设置android:windowSoftInputMode="stateHidden|adjustResize"也可以根据项目需要设置其他属性如下:stateUnspecified :未指定软键盘的状态,系统
2017-05-19 14:03:15
517
原创 Java日期格式转换
现在项目中服务端返回的日期都需要转换成不同的显示风格,这里就写个日期转换工具类。具体代码如下:import org.apache.commons.lang3.StringUtils;import org.apache.commons.lang3.time.DateUtils;import java.text.ParseException;import java.text.SimpleDateF
2017-05-19 10:46:35
2970
原创 AS 2.3启动APP报错Not found; no service started
最近发现升级android studio 2.3 之后,运行APP的时候有些手机会报报错 Not found; no service started. APP不自动启动要手动去启动,感觉每次调试都很麻烦,尤其刚开始运行App时半天不见反应,耽搁好久。具体报错信息如下:Starting service: Intent { act=android.intent.action.MAIN cat=[an
2017-05-19 10:24:07
1764
原创 使用RecyclerView中引发 java.lang.IllegalStateException: Cannot call this method while RecyclerView is com
出错原因 在适配器onBindViewHolder(….)方法里调用了notifyItemChanged(position),导致RecyclerView还没有渲染完滑动引发的 错误代码 @Override public void onBindViewHolder(final ContentViewHolder holder, final int position) { ...
2017-05-18 17:23:35
3282
原创 Java判断一个对象属性是否为空
就是在服务端在返回数据结构时,有些字段有时返回有时不返回(根据字段值来决定);但客户端会用到这些字段当没有返回时就会报空指针异常。 解决方法: for (Field f : obj.getClass().getDeclaredFields()) { f.setAccessible(true); if (f.get(obj) == null) { //判断字段是否为空,并且对象属
2017-05-18 14:54:46
15232
原创 关于讯飞语音的Android开发
今天来用下科大讯飞的语音功能,代码也非常的简单,在讯飞官方API文档中都写的非常清楚。今天主要实现讯飞里面的语音识别和语音合成两个功能。准备工作需要在讯飞官网注册或登录后 打开控制平台,创建自己的应用,会得到一个Appid,这个id会用到,如下图: 下载SDK, 将下载后的zip解压然后打开libs如图: 如使用讯飞语音UI的话,需要将下载SDK中的assets文件夹拷贝到项目
2017-03-29 11:37:52
2639
原创 Android数据库LitePal
前言 其实为了方便我们对数据库表进行管理,Android本身就提供了一个帮助类:SQLiteOpenHelper。这个类集创建和升级数据库于一身,并且自动管理了数据库版本,算是一个非常好用的工具。简述 LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的模式,并将我们平时开发时最常用到的一些数据库功能进行了封装,使得不用编写一行SQL语句就可以完成各种建表、
2017-03-23 17:09:53
675
原创 SearchView本地实时搜索
SearchView简介 SearchView是Android原生的搜索框控件,它提供了一个用户界面,用于用户搜索查询。w默认是展示一个search的icon,点击icon展开搜索框。 这里就不做过多的介绍,本章主要实现本地实时过滤搜索,现在看下效果: 下面直接上代码:实体类Bean.javapublic class Bean implements Serializable {
2016-12-08 16:11:31
754
原创 App中Web缓存机制
App中Web缓存机制Cookie Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端web颁发一个Cookie。客户端会自动创建一个SQLit数据库web会把Cookie自动保存进去。 当web再请求该网站时,web会把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。
2016-12-08 14:42:26
1736
原创 Git的基本操作
Git的基本用法初始化本地仓库 $ git init 使用别人仓库 $ git clone http://别人的项目地址 本地文件提交到服务器添加到本地缓存 $ git add . 指所有文件添加 $ git add 文件名 指单个文件上传 提交到本地仓库 $ git commit -m"提交描述" 提交到服务器 $ git push 同步服
2016-10-26 14:03:38
316
原创 PopupWindow
PopupWindow显示位置、设置半透明及兼容华为设置半透明背景popupWindow设置半透明背景/** * popupWindow设置半透明背景 * @param bgAlpha 透明值 0.0 - 1.0 */public void backgroundAlpha(float bgAlpha) { WindowManager.LayoutParams lp = getAct
2016-10-18 14:51:10
328
原创 Android全局异常捕获
在Android开发中在所难免的会出现程序crash,俗称崩溃。用户的随意性访问出现测试时未知的Bug导致我们的程序crash,此时我们是无法直接获取的错误log的,也就无法修复Bug。这就会极大的影响用户体验,此时我们需要注册一个功能来捕获全局的异常信息,当程序出现crash信息,我们把错误log记录下来,上传到服务器,以便于我们能及时修复bug。这时我们就需要自己来进行处理,现在这里介绍用第三方
2016-08-29 23:40:04
2458
原创 ListView与item中控件焦点抢占及错位问题
通常在LitView的item里面有可以点击的控件时,这个时候ListView的item将会失去焦点不能点击。 这时有两种解决办法分别如下: 方法一: 就是在该item中要点击的控件上设置android:focusable=”false”这个属性;方法二: 就是在该item父控件也就是最外层控件上设置android:descendantFocusability=”blocksDesc
2016-08-12 10:49:43
759
原创 万能适配器
为何要使用万能适配器?在安卓开发中,用到ListView和GridView的地方很多,如果你是开发一个简单点的APP还好,可能ListView和GridView的数量不会太多,我们只要去写几个BaseAdapter实现类就可以了。但如果有一天,你需要开发一个APP里面具有几十个ListView的子页面,此时的你该怎么办?每个ListView或GridView都去写一个适配的Adatper类吗? 这
2016-08-11 11:44:37
560
原创 Android Studio多渠道快速打包
由于国内Android应用市场品种太多,血统不纯,每次上线App都打包打到手软!好在现在有了Android studio和gradle,一条命令打包各种渠道版本App!多渠道打包实现步骤主要分两步:在AndroidManifest.xml的application标签下定义UMENG_CHANNEL占位符。 <meta-data android:name="UMENG_CH
2016-05-27 16:42:24
544
原创 简单使用Google Agera框架
Agera是来自Google新推出的一款响应式框架。其实在Android开发中,大家常常会面对非UI线程更新UI的问题。这个问题在百度上解答已经非常多了。其根本就是使用Handler,传递消息。但是Handler这个类的使用,不那么美观,结构不好看,还容易内存泄露。因此,各种框架对其进行了封装。从原生框架中的AsyncTask到后面EventBus,到如今的Agera都是对Handler传递消息这件
2016-05-27 16:01:43
1550
原创 Android设备获取唯一标识符
概述有时需要对用户设备进行标识,所以希望能够得到一个稳定可靠并且唯一的识别码。虽然Android系统中提供了这样设备识别码,但是由于Android系统版本、厂商定制系统中的Bug等限制,稳定性和唯一性并不理想。 唯一标识码这东西在网络应用中非常有用,例如检测是否重复注册之类的。下面就来介绍几种标识码: 1.DEVICE_ID; 2.MAC ADDRESS; 3.Sim Serial Numb
2016-05-09 17:34:48
10770
原创 UI测试导入Espresso时的冲突
以下是主要针对android studio导入包引发错误解决方法用Espresso做UI测试时会导入下面一些包dependencies { androidTestCompile 'com.android.support.test:runner:0.4' // Set this dependency to use JUnit 4 rules androidTestCompile 'com
2016-04-28 11:40:04
770
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人