- 博客(63)
- 收藏
- 关注
原创 类型转换与索引使用与字段缓存问题
MySQL 可能会自动进行类型转换,将字符串转换为整数,然后再进行比较。尽管这可能会返回正确的结果,但是由于进行了类型转换,查询可能不会利用到。然而,应用程序中的 MyBatis 缓存仍然包含之前查询的字段信息,其中包括。,以便在应用程序中只缓存你真正需要的字段,从而避免因数据库表结构更改而导致的错误。列,数据类型是整数(INT),并且为该列创建了一个索引。然后,你执行了该查询,将结果缓存起来。列已经不存在,就会导致映射错误,从而引发异常。列的索引,从而导致性能下降。在这个查询中,你使用了。
2023-08-14 15:50:11 344
原创 redis NOAUTH Authentication required 可能不是密码问题
多环境(test,pre,prd)部署,在测试环境测试通过之后部署预发环境的时候,服务一直报错,提示【io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required.】,这个提示一般情况下的意思是:redis服务配置了密码,客户端链接的时候没有填写密码。后续验证了官方的redis4.0.11是支持的。springboot简单整合redis,用的是lettuce客户端,提示没有授权,密码是对的,命令行验证过。
2023-08-10 15:59:47 3765
原创 推数与限流
限流:屏蔽掉无用的流量,允许少部分流量走后端。假设现在服务支持请求数为 10,有 1000 个请求,最终只有 10 个可以成功,99% 的请求短期都是无效请求削峰:请求在时间上高度集中于某一个时间点,瞬时流量容易压垮系统,因此需要对流量进行削峰处理,缓冲瞬时流量,尽量让服务器对资源进行平缓处理异步:将同步请求转换为异步请求,来提高并发量,本质也是削峰处理利用缓存:创建请求时,每次都需要先查询判断服务支撑数,只有少部分支撑的请求才会创建请求,因此可以将请求数据放在缓存中,减少数据mysql查询..
2022-01-17 11:19:54 185
原创 垃圾收集器
年轻代 serial:最早出现垃圾收集时,必须暂停其他所有工作线程,直到它收集结束。新生代采取复制算法,暂停所有用户线程。老年代采取标记整理算法,暂停所有用户线程。ParNew收集器:就是serial的多线程并行版本新生代采取复制算法,这一步并行多线程,暂停所有用户线程老年代采取标记-整理算法,暂停所有用户线程除了Serial收集器外,目前只有它能与CMS收集器配合工作。ParallelScavenge收集器基于标记复制算法实现的收集器,能够并行收集的多线程收集器Parallel Sc
2021-09-15 17:11:55 132
原创 关于项目中maven项目不是根目录,如何构建问题
如果直接是一个maven项目的根目录,那么直接执行打包命令即可但如果是根目录不是maven项目的根目录,那么就需要手动在根目录下加一个pom.xml 用来指定maven模块直接上解决方案我这里根目录就是一个普通目录,其下的子目录app指的就是我的maven子模块eg:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2021-03-24 16:12:45 805
原创 基本排序介绍
详细排序代码描述的都是顺序排序,降序则方向操作即可O(n^2)排序:冒泡排序类似泡泡一样一个一个的比较交换靠向边界 把最大的元素放在最右边 复杂度n^2选择排序选择temp比较得到当前区域最大的数 把最大的元素放在最右边 区域逐渐变小 复杂度n^2插入排序选择当前的数 在左边的有序队列中找到比其大的位置 然后把这个元素放在这个 其他的元素到之前元素的位置全部平移向后一位 复杂度 n^2O(nlogn)排序:1. 堆排序根据堆(二叉树) 将最大最小元素放在堆顶 节点为n其左
2021-03-10 17:54:03 110
原创 connection reset by beer问题排查
这里会先写触发原因,然后结合我的具体事例,并给出解决方案首先时触发原因如果一端的Socket被关闭(或主动关闭,或因为异常退出而 引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。Socket默认连接60秒,60秒之内没有进行心跳交互,即读写数据,就会自动关闭连接。一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。简单的说就是在连接断开后的读和写操作引起的。不同局域网的不
2021-02-20 11:27:30 1520
原创 swagger集成步骤(包含springboot集成与springcloud集成方案
简述swagger:服务端常用的文档页面,可自动通过扫描生成接口文档,也可以通过添加指定的注解显示接口。我这里主要是在集成springcloud微服务的时候,考虑多个模块的sw能不能集成到一个端口对外开放,因为我们知道微服务的优势就是多个服务分开运行,这样带来的问题就是多个端口开放,与此同时如果配合使用swagger并访问的话,那需要对每个服务的端口单独访问才能看到对应的swagger生成的接口文档,例如:现在有服务A,端口为5001;服务B,端口为5001;zuul服务,端口5003。如果你想
2020-10-19 10:42:28 444
原创 java类的加载机制之类的生命周期详解
类的生命周期:加载->((连接)验证->准备->解析)->初始化 -> 使用 ->卸载加载过程为五个阶段:加载、验证、准备、解析、初始化。其中加载、验证、准备、解析这四个阶段发生的顺序是确定的,而解析阶段则不一定,他在某些情况下可以再初始化阶段之后开始,这是为了支持java语言的运行时绑定(动态绑定或晚期绑定)。这里的几个确认顺序,指的是开始的顺序...
2019-02-12 17:17:20 351
原创 设计模式(不定期更新)
Design Practice用于设计模式学习与练习基础知识单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。开放-封闭原则:软件实体(类,模块,函数等等)应该可以扩展,但是不可修改。里氏代换原则:子类必须能够替换掉他们的父类型。中介者设计模式中介者模式不同对象之间并无直接联系,而是通过中介者去统一处理。在本例子中,中介者就是一个代理相亲平台,而其他不同的相亲对象,通过...
2019-01-22 14:23:42 148
原创 Dialog中使用了TextView,但是发现内容一直显示不全
在自定义Dialog中使用了TextView,但是发现内容一直显示不全的问题,代码完全没有问题。经过测试后发现了解决方法,就是在自定义的Dialog中使用TextView组件时,设置Android:layout_width不能使用wrap_content,如:android:id="@+id/tv_dialog_info"android:layout_width="wrap_content"and...
2018-10-09 20:24:00 1330
原创 Ubuntu16.04编译android6.0.1和repo upload填坑
旨在帮助解决不小心升级Ubuntu 16.04的同学所遇到的源码编译和repo upload问题,亲身踩坑,辛酸泪欢迎补充... 问题一: android 6.0.1无法编译通过1. 安装openjdk 7 (Ubuntu 16.04已经默认去掉openjdk 7的源了)sudo add-apt-repository ppa:openjdk-r/ppasudo apt-get ...
2018-09-03 16:02:45 493
原创 安装android系统应用与使用mk编译时需要注意的点
编译mk文件,注意点:1.使用mk可以指定java与res文件夹去编译成apk。手动添加依赖第三方库,动态库等。选择是否混淆签名等。 2.系统应用安装时,注意mk配置与sharedUserId的数值。 3.当使用第三方安装了apk后,再安装系统应用,如果包名相同,通过命令 am start -n com.base.module.grandstream.xxxxx/.Xxx...
2018-08-24 11:22:29 437
原创 面试的Java篇章(一)
. 最近比较忙,所以这一篇主要简单介绍一下。下一章将会具体介绍细节。对于工作一年以上的大家来说,什么封装继承多态已经是不会再去问了。可能会涉及的也就是线程池:四种线程池。1.SingleThreadExecutor单线程通道,没有并发,每次只有一个线程进行处理,按优先级处理线程,队列等待。2.CacheThreadPool缓存线程,多线程并发,核心线程稳定,当线程数...
2018-08-22 20:23:05 154
原创 Android网络方面的知识(Android面试回顾系列一)
一.网络方面的知识,主要就是问tcp/ip与udp,sokect与http与https的区别。1)ip:用于网络层端口之间的对比识别。2)tcp:说到tcp一般都是提到三次握手建立链接,这个过程并不是传输数据的过程,而是一些简单基础数据传递用于识别与建立连接。相对来说tcp建立的连接是稳定的,所谓的tcp/ip就是在网络层的端口对比识别认证后,tcp去用于稳定连接,类似超时、重发都是由tcp去...
2018-08-14 20:05:07 382
原创 ajax是什麽
1. ajax是什么? * asynchronous javascript and xml:异步的js和xml * 它能使用js访问服务器,而且是异步访问! * 服务器给客户端的响应一般是整个页面,一个html完整页面!但在ajax中因为是局部刷新,那么服务器就不用再响应整个页面!而只是数据! > text:纯文本 > xml:大家都熟悉!!!...
2018-07-17 10:13:20 162
原创 什么是代理与不同代理的区别。
简单来说就是你不用去做,别人代替你去处理。 废话不多说直接代码演示。举个简单的例子: public interface Hello { void say(String name);} 实现类:public class HelloImpl implements Hello { public void say(String name) ...
2018-05-17 17:07:39 534
原创 AIDL简述与实现
AIDL(Android Interface Define Language),是android的一种接口定义语言,类似于IDL。借助它,你可以定义接口,使得客户端和服务端之间实现进程间通信。对android来说, 一个进程无法通过正常的方法来访问另一个进程的内存空间。可以说,他们需要把对象分解成操作系统可以理解的原子类型,然后使对象突破限制在不同进程之间进行传输。具体实现这种机制的代码写起来非常...
2018-04-18 17:09:27 410
原创 在xml中设置视图的自定义属性。
在xml中写出自定义的属性值方法。实例:在xml中给自定义布局写出自定义属性的值。<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" ...
2018-04-16 19:26:13 488
原创 Android绘制基础概述
主要是记录与尽量简短的描述这些方法是对视图的作用是什么。ondraw方法/** * 画布 * @param canvas */ @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //画笔 Paint paint =...
2018-04-16 19:20:16 159
原创 Button设置elevation阴影没效果
Button设置elevation阴影没效果是因为默认主题里,已经有了elevation设置,所以再设置就没用了。可以先用android:stateListAnimator=”@null”把默认动画置空,然后再设置elevation,还要设置背景颜色,没有背景颜色是没有阴影效果的。设置完后运行此时是没有点击效果的,需要再次重新写符合开发者需求的drawable。按下动画问题解决:把Button外面...
2018-04-16 17:49:11 1274
原创 Android指纹识别
在开始之前,我们需要知道使用指纹识别硬件的基本步骤: 1.在AndroidManifest.xml中申明如下权限:<uses-permission android:name="android.permission.USE_FINGERPRINT"/>2.获得FingerprintManager的对象引用 3.在运行是检查设备指纹识别的兼容性,比如是否有指纹识别设备等。下面我们详细说一下...
2018-03-06 16:45:18 379
原创 光线传感器使用
开发使用光线传感器不需要权限声明。使用光线传感器比较简单。(很多传感器都是类似使用的)1.获取感情器管理服务。SensorManager senserManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);2.获取光线传感器。Sensor sensor = senserManager.getDefaultSensor(S...
2018-03-05 18:05:58 1550
原创 FNC的识别
关于FNC的识别。Android设备支持,读写数据,还有写入特定的URI后让设备识别后进行操作。Android对NFC的支持不同的NFC标签之间差异很大,有的只支持简单的读写操作,有时还会采用支持一次性写入的芯片,将NFC标签设计成只读的。当然,也存在一些复杂的NFC标签,例如,有一些NFC标签可以通过硬件加密的方式限制对某一区域的访问。还有一些标签自带操作环境,允许N
2018-03-05 16:16:26 1087
原创 Android屏幕适配问题
不知道小组长想什么,突然让我写个屏幕适配。所以在这里记录一遍。移动端屏幕适配尺寸与屏幕分辨率屏幕尺寸含义:手机对角线的物理尺寸单位:英寸(inch),1英寸=2.54cmAndroid手机常见的尺寸有5寸、5.5寸、6寸等等屏幕分辨率含义:手机在横向、纵向上的像素点数总和一般描述成屏幕的"宽x高”=AxB含义:屏幕在横向方向(宽度)上有A个像素点,在纵向方向(高)有B个像素点例子:1080x192...
2018-02-27 17:01:37 159
原创 UI绘制复习yi
首先熟悉Paint与Canvas1.Paint可以被理解为绘制图形时的画笔。2.Canvas可以理解为使用画笔绘画的画布。总得来说就是配置号Paint在Canvas上画东西。一切的开始:重写onDraw()方法。1 @Override2 protected void onDraw(Canvas canvas) {3 super.onDraw(canvas);4 /
2018-01-25 18:31:39 208
原创 Android代码混淆是什么
本文主要是介绍Android混淆是什么,有什么需要注意的地方,便于初学者较好的了解什么是“混淆”与使用时的注意事项。1.由于Android项目是基于java语言的,而java属于高层抽象语言,易于反编译,其编译后的程序包包含了大量的源代码变量、函数名、数据结构等信息,根据其编译打包后的APK文件,可以非常容易的得到 近乎源代码质量 的反编译代码。如果不加混淆,相当于直接将源代码
2018-01-21 23:22:48 1940
转载 Android开发规范(鉴于同事的代码风格,再次意识到规范的重要性)
其实我本身的代码规范还是不错的,对这方面也有着一定的自我要求,没工作前就有的习惯。以前读书的时候觉得别人写的不规范,是不美观不好理解,后来发现工作的时候那叫坑!!!!而且新手们切记切记!!! 千万不要不以为然,真的让他人很痛苦,而且我觉的对于项目的后期非常不利于!!!首页归档订阅
2018-01-16 16:31:33 286
原创 Fragment重叠问题二(解决方案)
解决方案:上一篇文章的分析中我们知道了发生Fragment重叠的根本原因在于FragmentState没有保存Fragment的显示状态,即mHidden,导致页面重启后,该值为默认的false,即show状态,所以导致了Fragment的重叠。根据这个原因,我想到我们手动维护一个mSupportHidden.看下面的基类Fragment代码:1public class BaseFragm
2018-01-12 14:48:45 405
原创 Fragment重叠问题一(分析原因)
我们在使用Fragment的过程中,有时会发现一直表现正常的Fragment,突然重叠了!什么情况下会发生Fragment重叠?一般满足下面2个条件才可能会发生重叠:1、发生了页面重启(旋转屏幕、内存不足等情况被强杀重启)。2、重复replace|add Fragment 或者 使用show , hide控制Fragment;为什么会发生Fragment重叠?从源码角度分析,为什么发生页面重启后
2018-01-12 14:29:03 557
转载 全面复习Activity
#Activity是什么? 我们都知道android中有四大组件(Activity 活动,Service 服务,Content Provider 内容提供者,BroadcastReceiver 广播接收器),Activity是我们用的最多也是最基本的组件,因为应用的所有操作都与用户相关,Activity 提供窗口来和用户进行交互。 官方文档这么说: An activity i
2018-01-09 23:00:14 201
原创 Android7.0后文件权限问题。
为了提高私有文件的安全性,面向 Android 7.0 或更高版本的应用私有目录被限制访问,详细可以看Google官方的7.0行为变更介绍 (可以直接浏览)。此设置可防止私有文件的元数据泄漏,如它们的大小或存在性。此权限更改有多重副作用:私有文件的文件权限不应再由所有者放宽,为使用 MODE_WORLD_READABLE 和或 MODE_WORLD_WRITEABLE 而进行的此类
2018-01-08 22:26:23 8455
原创 关于Android 6.0后权限问题
在应用系统大于等于6.0的手机上面,明明已经在AndroidManifest.xml中配置了权限,但是就是没有作用。因为Android6.0后需要动态的获取权限。就是当你需要这个权限的时候,需要手机给用户一个提示选择是否同意开启这个权限。看到网上有很多关于这方面的文章看起来好像很麻烦似的,其实动态获取权限就那几行代码就可以搞定。我在这里大概的初步的展示一下使用到的关键点,方便新手初步的使用与了解。
2018-01-07 22:03:37 327
原创 JVM基础入门
思考一个问题:关于下图程序第一次的运行结果。package com.zq.chat.client;class Singleton{ private static Singleton singleton = new Singleton(); public static int counter1; public static int counter2 = 0; privat
2018-01-06 18:55:05 178
原创 Android Studio 错误: 非法字符: '\ufeff' 解决方案|错误: 需要class, interface或enum
今天开发的时候使用别人的项目遇到一个小问题,如图下:如果遇到此种问题可以用文本编辑器之类的工具手动将文件转为无BOM编码普通的UTF-8文件。原因:因为Android studio中识别项目的UTF-8编码都是无BOM编码普通的UTF-8。而有很多人编写Android程序都是用eclipse之类来写,这些可以自动把UTF-8+BOM格式转换成UTF-8格式,所以其文件的编码格式实际
2018-01-05 23:44:15 505
原创 android 触摸事件、点击事件的区别,执行流程
针对屏幕上的一个View控件,Android如何区分应当触发onTouchEvent,还是onClick,亦或是onLongClick事件? 在Android中,一次用户操作可以被不同的View按次序分别处理,并将完全响应了用户一次UI操作称之为消费了该事件(consume),那么Android是按什么次序将事件传递的呢?又在什么情况下判定为消费了该事件? 搞清楚这些问题
2018-01-04 23:09:09 1200 1
原创 关于布局问题与图片剪裁问题
1.布局问题。为了适配华为手机的虚拟键盘,切记,当虚拟键盘上顶时,整个的布局都会被顶上去,这个时候注意显示文字的视图位置,如果显示文字的的视图与其顶部的距离设置的有问题,便会导致部分文字显示不清。2.图片剪裁问题。关于打开相机相册,这里就不提了,有许多链接都是相同的,但是在剪裁图片的时候我遇到了一个问题。之前我使用的是方法一:private static void
2018-01-03 10:00:49 455
原创 父布局与子布局控件的实现响应点击事件冲突问题。
布局类:一:以RelativeLayout为例1,在代码中加入如下红色代码,不然会被包含在其中的控件把焦点抢占,此时子控件无需设置clickable和focuseable android:id="@+id/relativeLayout" android:layout_height="wrap_content
2017-10-19 14:09:11 6730
原创 数据库进阶复习
1. 课程回顾mysql基础 1)mysql存储结构: 数据库 -> 表 -> 数据 sql语句 2)管理数据库:增加: create database 数据库 default character utf8;删除: drop database 数据库;修改: alter database 数据库 default character gbk;查询: show
2017-09-19 11:39:56 303
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人