- 博客(56)
- 收藏
- 关注
原创 MQ解决的问题
2.分布式,微服务,之间的通信,实现服务质检解耦。1.不同语言的程序使用MQ通信。4.实现异步,提高用户体验。3.高并发实现销峰作用。
2024-06-10 20:18:09
171
原创 设计模式-单例模式
经过反编译代码后发现,枚举类在静态代码块中,执行构造函数,实例化对象,执行构造方法是,初始化了 单例对象。使用枚举,的饿汉式单例模式,能抵抗反射和序列化的破坏。一般的单例模式,会有反射安全问题。
2024-06-04 18:33:08
257
原创 volatile关键字的作用
/3.设置instance指向刚分配的内存地址,//memory = allocate();//1.分配对象内存空间。volatile修饰的变量,被多线程方式,具有可见性(修改可见)//instance(memory);如果2 3 调换顺序,此时instance!创建变量时,禁止cpu指令重排序。
2024-06-04 16:46:05
92
原创 数据库索引失效的场景
大于号小于号等于不等like 非%开头in (参数不限多少都走)not in条件表达式右侧计算 age = 10/2 或者 age = 10/2 + 1is null。
2024-05-30 12:09:20
190
原创 Android-- UI 布局,屏幕分辨率兼容和版本兼容,屏幕适配解决方案
这篇文章主要是对解决屏幕适配问题思路的总结,会比较抽象,以后逐步把每条步骤对应的【案例】总结上去。A:抛开【业务需求】,屏幕适配解决方案的本质是:1.动态控制控件的尺寸,2.动态控制视图布局。-1.动态控制控件的尺寸:巧妙结合控件的动态属性和密度无关像素单位(dp,sp),在不同的机型上灵活的操控像素,使UI控件在目标设备上显示的大小,与目标设备屏幕的比例协调。-2.动态控制视图布局:巧妙结合几种布
2017-08-13 20:56:37
1249
1
原创 FastJson--常用方法总结
常用API 把JSON文本parse为JSONObject或者JSONArray public static final Object parse(String text); 把JSON文本parse成JSONObject public static final JSONObject parseObject(String text); 把JSON文本parse为Java
2017-08-07 12:07:20
2398
1
原创 Android--LocalSocket--TCP 使用
一 Socket Socket最初用在基于TCP/IP网络间进程通信中,以客户端/服务器模式进行通信。实现异步操作,共享资源集中处理,提高客户端响应能力。Tcp通信基本流程: 服务器端 客户端 1.创建socket
2017-08-01 15:46:41
754
1
原创 Android--音频开发--信号从麦克风到扬声器的处理流程
信号从麦克风到扬声器的处理流程—-示意图基础知识简介音频采集APIMediaRecorder 更加上层一点的API 它可以直接把手机麦克风录入的音频数据进行编码压缩(如AMR、MP3等)并存成文件 MediaRecorder 底层也是调用了 AudioRecord 与 Android Framework 层的 AudioFlinger 进行交互的。AudioRecord
2017-07-31 08:49:00
8095
原创 Android--利用Handler消息转发机制实现倒计时(内含防止内存泄露处理)
真正学会Handler必须要了解的相关概念相关概念图示: Message:存储信息的对象,被Handler在线程间转发,实现线程间的通信。 MessageQueue:以有序的方式排列的,等待处理的事件(Runnable或者Message)。 Handler:本质上是生成了消息队列,供Lopper抽取。 Lopper:类似水泵,从MessageQueue抽取Runnable或者Messag
2017-07-26 17:14:57
1826
2
原创 Android--menu和OkHttp框架(未封装),结合Executors(线程池)实现网络请求的案例
涉及到的 知识点:1.安卓UI组件menu2.OkHttp框架3.Executors(线程池)OkHttp结构简介案例代码import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.Menu;import android
2017-07-25 21:16:32
832
1
原创 Android--使用原生技术实现ListView(原生技术实现网络异步请求,解析json数据)
涉及到的原生技术:1.原生技术实现网络异步请求1.原生技术解析json数据实现步骤:实现代码:**第一二步比较简单,直接跳过import android.content.Context;import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;imp
2017-07-24 16:33:10
453
原创 Android--Universal-Image-Loader异步图片加载框架封装思路及实现
框架简介:名称:nostra13/Android-Universal-Image-Loader开源网址:https://github.com/nostra13/Android-Universal-Image-Loader封装思路和目的:代码实现:import android.content.Context;import android.graphics.Bitmap;import android
2017-07-23 22:56:48
587
原创 Android--okhttp框架封装思路/网络请求组件的创建
封装目的规避okhttp框架API更新带来的风险提高代码复用性提升程序的可扩展性封装逻辑封装思路1.封装requestRequestParams类 封装所有的请求参数到HashMap中(线程安全)CommonRequest类 接受请求参数,生成request对象RequestParams类 封装所有的请求参数到HashMap中(线程安全)import java.io.Fi
2017-07-23 11:41:09
1161
2
原创 Android--android:scaleType属性-->ImageView(图片)适应屏幕的处理办法
Android:scaleType是控制图片如何resized/moved来适应屏幕。ImageView.ScaleType / android:scaleType值的意义区别:CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长(宽)等
2017-07-21 10:32:58
505
1
原创 算法--冒泡排序原理
public class SortDemo { public static void main(String[] args) { int[] arr = {12,56,45,34534,456,456,465,789798456,89,32,65,49}; System.out.println("数组的初始顺序:"); //先遍厉出数组的初始顺序
2017-07-01 18:30:42
327
原创 Mybatis--使用mybatis generator插件映射数据库,自动生成pojo对象,dao接口,mapper.xml文件的方法
步骤1:首先保证数据库能正常连接步骤2:用MAVEN依赖工具安装mybatis generator插件在pom文件里 标签下配置该插件 <build> <finalName>mmall</finalName> <plugins> <!-- 配置mybatis generator,使项目自动添加所需要的jar包 --> <
2017-06-23 10:40:12
3783
3
原创 SSM框架开发项目--用到的注解记录,及详解。(先记录,后研究,再总结---未完)
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)//保证序列化json的时候,如果是null的对象,key也会消失public class ServerResponse<T> implements Serializable { @JsonIgnore //使之不再json序列化结果当中 public boole
2017-06-22 21:01:22
632
原创 解决 Android SDK下载和更新失败的问题
出现如下报错信息:Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xmlFetched Add-ons List successfullyFetching URL: https://dl-ssl.google.com/android/repository/repository-8.xmlDone load
2017-06-21 13:38:20
6503
3
原创 明天更美好,世界有你更精彩!
结合自身踩过的坑和失败经历,给学弟学妹们的三条建议:关于社会资源:把社会资源简单分为3份:【人脉资源】,【资本资源】,【技能资源】这三分资源是可以相互转化的,也就是说你拥有了任意一份资源就有机会获得其他两份资源。你拥有的资源(如技能资源)越有竞争力,你获得的其他两份资源就越多。对于大多数同学而言,刚毕业时缺失的是【人脉资源】,【资本资源】,【技能资源】这三份资源。对学弟学妹的建议1:选专业方面对于即
2017-06-13 20:15:39
2056
12
原创 常用的设计模式----工厂模式
工厂模式:作用:实例化对象,代替new操作应用场景:以选择脸萌选择【发型】和【面部特征为例】有一组类似的对象(发型),需要在不同的业务场景中动态的创建(客户端选择不同的发型);随着业务的发展,很难在设计初期就准备好所有种类的接口(发型车间)和实例对象(中分,左分);考虑到系统的扩展性(增加脸型)和易维护性(修改,增加发型),这时候应该使用工厂方法模式。优点:一个对象的依赖对象发生变化,与本身无关,实
2017-06-13 17:36:26
494
2
原创 常用的设计模式----单例模式
应用场景:比如工具类,线程池,缓存,日志对象,配置文件。这些对象只需要一个就足够了,避免如果创造多个实例,引发其他问题(占用过多资源,不一致的结果等等)。作用:保证整个应用程序中某个实例有且只有一个。类型1:饿汉模式 /** * 单例模式之—–饿汉模式 * @author Administrator * */ public class Singleton {// 1
2017-06-13 14:18:28
373
3
原创 git--版本工具的常用命令以及初始化实操
初始化命令在项目根目录下执行以下命令1.配置不用提交到远程仓库的文件创建配置文件:touch .gitignore2.打开.gitignore文件配置不用提交的文件类型例如:所有编译后的文件都不提交配置: *.class 以下类型的包不用提交配置: *.war *.ear maven 文件夹下的不用提交配置: target/
2017-06-07 14:31:35
496
原创 git--版本工具的配置及报错信息处理
验证命令安装后执行: git –version返回版本信息,则安装成功一·基础配置1.配置用户名(提交时会引用)git config –global user.name “yourName”2.配置用户名(提交时会引用)git config –global user.email “yourEmail”3.其他配置如果安装KDiff3工具时,使用此配置:git config –global me
2017-06-07 14:01:45
3482
原创 List--和--Map
ArrayList 和VectorArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前
2017-06-05 20:44:36
316
原创 Spring--MVC--如何书写MVC的控制层Controller
MVC控制层的作用:调用业务逻辑产生合适的数据,传递数据给视图层用于视觉呈现1.在类上使用@Controller注解作用: 告诉springmvc的dispatcherServlet这是一个Controller然后被dispatcherServlet的上下文所管理,并且完成它的依赖注入2.在类上使用@RequestMapping注解例如:@RequestMapping(“/user”)作用: Con
2017-06-04 14:19:00
19228
原创 Spring--AOP--基本配置(Intruductions-- Advice 动态代理)
Intruductions简介:在Spring AOP中,将introduction当作advice来处理。与一般的advice一样,introduction advice相当于一种特殊类型的拦截器。作用:可以动态的为某类添加父类,以添加该类的新功能**特点:**introduction是一个更加特殊的、但功能更加强大的切入类型—-利用它可以实现为给定的类动态地添加新功能(动态的为指定类添加父类)。
2017-06-02 16:35:33
471
原创 Spring--AOP--基本配置(切面Aspect,切入点Pointcut,通知Advice)
相关概念(自己的理解):切面Aspect:可以同时对多个模块增加功能(例如:日志记录,性能统计,安全控制,事务处理,异常处理等等),多个模块可以共用,以满足业务需求。切入点Pointcut:定义一个范围,控制增加的功能作用的范围(范围:一个包下的所有类,一个类,一个方法等等)。通知Advice:定义一个时间点,控制增加的功能使用的时机。相关概念(别人根据官方的翻译):切面Aspect:一个关注点的模
2017-06-02 13:06:04
4370
1
原创 代理模式--JDK动态代理与CGLIB动态代理的区别
JDK动态代理:1.只能代理实现了接口的类2.没有实现接口的类不能实现jdk的动态代理CGLIB动态代理:1.针对类来实现代理2.对指定目标类产生一个子类,通过方法拦截技术拦截所有父类方法的调用
2017-06-01 19:59:48
338
原创 代理模式--CGLIB动态代理(内含详细实现步骤及代码)
实现步骤:1.创建被代理的类及方法。public class Train { public void move() { System.out.println("火车行驶中"); }}2.创建一个实现接口MethodInterceptor的类,重写intercept方法,创建获取被代理类的方法 getProxy(Class cla);import java.lang.re
2017-06-01 19:55:47
634
原创 代理模式--JDK动态代理(内含详细实现步骤及代码)
实现步骤:1.创建一个实现接口InvacationHandler的类,它必须实现invoke方法,并添加相应的功能。package com.imooc.jdkproxy;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;public class TimeHandler implements Invo
2017-06-01 18:53:24
393
原创 Spring Bean装配--基于java容器的注解说明@ImportResource和@Value
@ImportResource和@Value结合使用的作用:1.使用@ImportResource能方便的加载需要的资源。2.使用@Value方便的引入资源中的值,并把值赋予变量。实现步骤:1.编写properties文件jdbc.url=127.168.0.1jdbc.username=rootjdbc.password=tiger2.配置XML文件<?xml version="1.0" en
2017-06-01 11:12:13
277
原创 Spring Bean装配--@Bean注解注入说明
@Bean作用:相当于XML配置文件中 < bean id=”” class=”“> < /bean> 用于初始化一个由SpringIoc管理的新对象的方法相关代码示例:java代码实现:@Configurationpublic class StoreConfig { @Bean public Store getStringStore() { return n
2017-06-01 09:57:14
477
原创 Spring Bean装配--@Qualifier结合@Autowired注解注入说明
@Qualifier注解的作用:按类型自动装配可能有多个bean实例的情况,容器不知道装配哪个实例(一个接口有多个实现的情况),可以使用Spring的@Qualifier注解缩小范围(或指定唯一)相关实现代码public interface BeanInterface {}@Componentpublic class BeanImpl1 implements BeanInterface {}@Co
2017-06-01 08:47:20
452
原创 Spring Bean装配--Autowired注解注入说明
XML文件相关配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.spring
2017-06-01 08:04:54
559
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人