- 博客(66)
- 资源 (3)
- 收藏
- 关注
原创 java的各种锁
乐观锁与悲观锁乐观锁:在线程占有资源的时候,其它线程也可以切换,获取到响应的资源悲观锁:在线程占有资源的时候,其它线程只能阻塞,不可以获取资源,只有当线程释放之后,其它线程才可以申请到占有的资源所有实现Lock的都是悲观锁公平锁与非公平锁公平锁:所有线程进行资源申请的时候,都必要按照对应的队列来获取非公平锁:所有线程对资源申请的时候没有次序,谁先抢到资源谁先执行ReenTrantLock根据构造函数可以实现公平或者非公平锁可重入锁与不可重入锁业务场景如下,方法A保
2021-08-13 15:48:10 150
原创 Linux 登录数据库Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘最终解决方法
Linux安装好mysql后,在Linux上登录的时候遇到下面这情况在网上找了很多方法,发现都描述得模棱两可。发现目录下没有这个文件,而且修改了my.cnf依然也不奏效。解决后特意记下来:通过查找资料发现,mysql的连接方式有两种:一种是TCP/IP一种是socket连接这里sock的报错就是使用socket的连接mysql.sock的作用是程序与mysqlserver处于同一台机器,发起本地连接时可用。在my.ini中或my.cnf中改变端口后,mysql.s..
2021-07-16 15:36:01 9432
原创 xxx.jar no main manifest attribute 没有主清单属性--解决办法
今天在部署项目的时候遇到了no main manifest attribute没有主清单属性这个坎java -jar xx.jar 就会出现no main manifest attribute报错。百度发现一堆加
2021-06-03 22:08:29 409
原创 MySQL索引下推
索引下推是5.6版本才拉出来的一个概念。意思是在联合索引中,先从索引中进行筛选,下推到所有的索引列,从最终结果中再回表查询,从而减少回表的次数,加快查询速度。下面来个例子进行讲解:数据表如下建立一个联合索引(username,age)执行的SQL语句为select * from user where username like ‘张%’ and age >10;图解回表的记录从5.6之前:会匹配username,发现id是3和4符合条件,然后回.
2021-06-02 21:07:35 114
原创 MySQL索引
1、索引的本质索引的本质是一种排好序的数据结构。索引可以类比字典中的目录。2、索引的分类2.1、hash索引hash索引是常见的索引,单条记录查询效率很高,时间复杂度为1,但是hash索引并不是最常见的数据库索引类型。原因是hash索引适合精确查找,但是范围查找不适合。hash索引在范围查找时只能全表匹配的查询。2.2、二叉树常见的索引使用的数据结构是树结构。二叉树的结构为在极端的情况下,二叉树会出现链化的情况,即是节点一直在某一遍增加,效果如图..
2021-05-25 10:11:30 89 2
原创 docker启动rabbitMQ访问不了管理界面-问题解决
rabbitMQ可以在docker上面去安装启动,这样快捷方便,也利于本地开发的调试。先在docker下去拉取dockerdocker pull rabbitmq这样拉取了rabbitMQ最新的版本后,然后在启动rabbitMQdocker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq启动完成后就可以使用docker ps查看有没有启动成功启动成功之后想登录管理界面,管理界面的官方指导是 IP:15672.
2021-03-15 10:05:08 5479 4
原创 vue控件a-date-picker设置默认值的方式以及注意事项
a-date-picker设置默认值在Vue中datePicker的使用是比较多的,但是用到a-date-picker的时候难免会遇到一下预料之外的事情在设置默认值这个事情上,就给了当头一棒,设置老不成功踩坑:先说如何踩坑,在一般思维观念上,a-date-picker绑定一个model,然后model在初始赋值,值直接用字符串赋值,这就遇上事了原因:a-date-picker其实数据模型是moment,使用a-date-picker就必须结合moment来实现。所以model用字
2021-02-25 11:35:43 18737 3
原创 mybatis的比较
1、传统JDBC:操作麻烦,工作量大2、hibernate:全表映射带来的不变,比如更新时需要发送所有的字段,对带宽造成浪费无法根据不同的条件组装不同的SQL对多表关联和复杂SQL查询支持较差,需要自己写SQL。返回后,需要自己将数据组装为POJO不能有效支持存储过程虽然有HQL,但是性能比较差,大型互联网系统往往需要优化SQL,hibernate做不到...
2021-02-24 22:39:05 433
原创 springboot 抽取feign组件作为jar包依赖注入失败
springboot 抽取feign组件作为jar包依赖注入失败报错信息:***************************APPLICATION FAILED TO START***************************Description:Field yjFeign in sanyi.memberservice.service.impl.YjWebServiceImpl required a bean of type 'com.sanyi.sanyifeign..
2021-02-18 11:00:49 1126 2
转载 Android SDK 代理更新版本迭代
启动 Android SDK Manager ,打开主界面,依次选择「Tools」、「Options...」,弹出『Android SDK Manager - Settings』窗口; 在『Android SDK Manager - Settings』窗口中,在「HTTP Proxy Server」和「HTTP Proxy Port」输入框内填入 mirrors.neusoft.ed...
2018-11-13 21:47:33 240
转载 帖子中心,数据库架构优化与实践
本文将以“帖子中心”为例,介绍“1对多”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: 如何来实施水平切分 水平切分后常见的问题 典型问题的优化思路及实践 一、什么是1对多关系所谓的“1对1”,“1对多”,“多对多”,来自数据库设计中的“实体-关系”ER模型,用来描述实体之间的映射关系。 1对1 一个用户只有一...
2018-09-14 09:19:48 447
原创 BindingException
在项目中一直报这个exception org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 在网上找了很多方法都解决不了,最后通过这个排查最终解决了这个bug到target目录下看是否有mapper.xml文件生成(按照自己对mapper.xml文件的路径配置到target...
2018-09-07 10:23:49 2822
转载 用户中心,数据库架构优化与实践
本文将以“用户中心”为例,介绍“单KEY”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: 如何来实施水平切分 水平切分后常见的问题 典型问题的优化思路及实践 一、用户中心用户中心是一个非常常见的业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为:User(uid, login_name, passwd, ...
2018-09-03 09:32:12 3609
原创 乐观锁与悲观锁
乐观锁和悲观锁机制,是在多用户环境并发控制得两种锁机制乐观锁:在关系数据库管理系统中,乐观并发控制(又名乐观锁)是一种并发控制得方法。它假设多用户并发的事务在处理时不会彼此相互影响,各事务能够在不产生锁的情况下处理各自影响的那部分数据。在提交数据更新之前,每个事务会先检查在该事务读取数据后,在没有其他事务又修改了该数据。如果其它事务又更新的话,正在提交的事务就会回滚。乐观并发控制得事务包括以下阶段...
2018-06-24 22:52:55 169
原创 java面试(基础)
1、一个java源文件里面是否可以包含多个类(不是内部类),有什么限制答案:可以有多个类,但是只能有一个public的类,而且public类的类名必须和文件名一致2、&和&&的区别答案:&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都未true的时候,整个表达式才为true,否则只有一方是false,结果都为fal...
2018-06-24 22:51:58 233
转载 listview里面嵌套gridview的防微信朋友圈
看博文之前,希望大家先打开自己的微信点到朋友圈中去,仔细观察是不是发现朋友圈里的有个“九宫格”的图片区域,点击图片又会跳到图片的详细查看页面,并且支持图片的滑动和缩放?这个功能是不是很常用呢?!那么我今天正好做了这个Demo,下面为大家讲解一下。首先按照惯例先看一下效果图吧,尤其不会录制gif动画(哎~没办法,模拟器不支持多点触控,刚好我的手机又没有Root,不能录屏,悲催啊,大家见谅,想要看真实
2018-06-24 22:49:03 255
转载 1、spring-cloud 简介
Sping Cloud为开发人员提供了快速构建分布式系统中的一些通用模式如:配置管理、服务发现、断路由、只能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态spring cloud官方文档提到的服务开发的12项要素。 I. Codebase从一个代码库部署到多个环境。II. Dependencies使用显式的声明隔离依赖,即模块单独运行,并
2018-06-24 22:47:34 191
转载 自定义控件
转载自: http://blog.163.com/ppy2790@126/blog/static/103242241201382210910473/开发自定义控件的步骤:1、了解View的工作原理 2、 编写继承自View的子类3、 为自定义View类增加属性 4、 绘制控件 5、 响应用户消息 6 、自定义回调函数 一、View结构原理Andro
2016-09-01 23:34:09 372
原创 懒人库--ButterKnife
懒人库--ButterKnife项目地址https://github.com/JakeWharton/butterknife目的:减轻工作量功能:解放findViewById()和setOnClickListener()性能:对性能的影响微乎其微缺点:可读性差自定义注解的实现都是限定为RetentionPolicy.CLASS,其是通过自动生成java代码的形式来完
2016-08-19 15:53:33 321
原创 自定义菜单ContextMenu
CntextMenu依赖第三方库,首先需要在build下添加依赖第一步,为工程添加依赖compile 'com.yalantis:contextmenu:1.0.6'第二步,研究发现,这个菜单只能限定有fragment上,activity上不适合添加此菜单因此在activity中添加了一个toolbar和一个fragment第三步,创建菜单3.1初始化too
2016-08-19 15:51:48 2040
转载 RxJava响应式函数编程
RxJava响应式函数编程RxJava最核心的两个东西是Observables(被观察者,事件源)和subscribers(观察者)。observables发出一系列事件,subscribers处理这些事件。一个Observables可以发出零个或者多个事件,知道结束或者出错。每发出一个事件,就会调用它的subscribee的onNext方法,最后调用subscribe.onNex
2016-08-19 15:45:53 412
原创 Picasso
Picasso是square公司开源的框架使用非常简单,只需要调用下面这句话Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); 、但是在显示的时候还可以设置一下其他的参数Glide.with(getContext()).load(url) .asBitmap(
2016-08-19 15:43:38 240
原创 adapter调用notifyDataSetChanged刷新没有起作用的原因
listview列表中的数据更新后刷新是使用listview的基础,但是有时候在更新数据之后使用notifyDataSetChanged方法刷新页面的时候就出现了没反应的现象。原因是adapter会监听一个数据源,这个数据源在一开始的时候会指向一个内存,当指向此内存的数据源发生变化的时候adapter调用notifyDataSetChanged方法就可以进行刷新,但是问题就出在这里数据源往
2016-08-19 15:27:28 3888
转载 线程总结
想走的远,那么你基础一定要好。别以为这些不是东西。未来能走多远,要看基础1,两种开启线程方法:子类,Runnable接口。 new Thread(){run(){...}}.start(); new Thread(new Runnable(){run(){...}}).start();2
2016-04-15 11:47:26 264
翻译 ImageLoader的各种加载方式
imageloader加载图片路径选择先初始化DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder() .showImageForEmptyUri(R.drawable.img_load) .showImageOnFail(R.drawable.img_load).cacheInMe
2016-04-15 11:43:59 581
转载 android手机屏幕适配理论知识
对于具有相同像素密度的设备来说,像素越高,尺寸就越大,所以可以换个思路,讲问题从单纯的尺寸大小转换到像素大小和像素密度的角度来占比最高的是480*800,320*480的设备竟然也占据了很大比例,但是和半年前的数据相比较,中低分辨率(320*480、480*800)的比例在减少,而中高分辨率的比例则在不断地增加。虽然每个分辨率所占的比例在变化,但是总的趋势没变,还是
2016-04-15 11:42:33 683
原创 获取屏幕辅助类
/** * 获得屏幕相关的辅助类 */public class ScreenUtils { private ScreenUtils() { throw new UnsupportedOperationException("cannot be instantiated"); } /**
2016-04-15 11:40:26 262
原创 侧滑菜单的实现
一般的侧滑的实现ViewGroup Menu +ContentonTouchEventMOVE:ViewGroup的leftMarginUP:根据现实菜单的宽度,决定将其隐藏或者现实:1、Scroller2、LeftMargin + Thread今天,继承HorizontalScrollView自定义ViewG
2016-04-15 11:34:56 230
原创 按字母索引排序listview
首先需要三个工具类第一个工具类:侧边字母表public class SideBar extends View { // 触摸事件 private OnTouchingLetterChangedListener onTouchingLetterChangedListener; // 26个字母 public static String[]
2016-04-15 11:31:16 659
原创 android隐藏软键盘
隐藏软键盘的方法有很多种,下面是隐藏软键盘的一种方法,在这么多中方法中,我感觉这种方法比较好用,退出的方式也比较友好// 下面三个用于隐藏软键盘 @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction()
2016-04-15 11:29:08 489
原创 HTTP与socket编程
socket是对TCP/IP协议的封装和应用http是应用层协议,主要解决数据如何在网络中传输传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的,而Socket本身不算是协议,就像上面所说,它只是提供了一个针对TCP或者UDP编程的接口。建立socket连接至少需要一对套接字,其中一个运行与服务器(ClientSocket),一个
2015-12-28 14:39:05 1249
原创 TCP,UDP
TCP:TCP是面向链接的,提供一种端对端的传输 一种面向连接的,可靠的,基于字节流的传输层通信协议在计算机网络中,他完成第四层传输层所指定的功能位于IP层之上,应用层之下的中间层TCP进行三次握手 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户
2015-12-28 14:37:47 294
转载 Android屏幕适配
对于具有相同像素密度的设备来说,像素越高,尺寸就越大,所以可以换个思路,讲问题从单纯的尺寸大小转换到像素大小和像素密度的角度来占比最高的是480*800,320*480的设备竟然也占据了很大比例,但是和半年前的数据相比较,中低分辨率(320*480、480*800)的比例在减少,而中高分辨率的比例则在不断地增加。虽然每个分辨率所占的比例在变化,但是总的趋势没变,还是这六种,只是
2015-12-28 14:33:25 794
转载 Android imageloader加载网络,本地图片方式
imageloader加载图片路径选择先初始化DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder() .showImageForEmptyUri(R.drawable.img_load) .showImageOnFail(R.drawable.img_load).cacheInMe...
2015-10-31 23:52:03 5483
原创 webview的具体设置与使用
webview的使用webview加载网页之后可以显示网页内容,但是在点击网页之后还需要JavaScript的支持,所以还需要设计JavaScript,否则显示的会是空白的页面mWebView.getSettings().setJavaScriptEnabled(true);设置完JavaScript之后再加载网页的路径在点击网页上的内容如果不进行设置的话就会自动去到浏览器里面
2015-08-26 23:03:46 647
原创 AlarmManager
AlarmManager闹钟的设置可以作为一个特定的时间去触发一个事件三件事;1、建立一接收者receiver,在onreceiver里面写触发/** * 闹铃接受者,时间到了会触发notification的服务 * @author Administrator * */public class AlarmReceiver extends Broadcas
2015-08-26 22:58:39 339
原创 Android java代码优化问题探究
总体原则:不做不必要的事,不分配不必要的内存1、字符串频繁操作时,多用StringBuffer少用String2、尽量使用本地变量,即反复使用的变量要先保存成临时或者局部变量,尤其是循环中使用的变量3、String方法中的substring和indexOf都是Native(本地)方法,可以大量的使用4、如果函数返回的是String类型,而且返回后的使用就是要加入到StringBuf
2015-05-04 20:02:09 371
转载 滑动tab
1. 第一种,使用 TabHost + ViewPager 实现该方法会有一个Bug,当设置tabHost.setCurrentTab()为0时,ViewPager不显示(准确的说是加载),只有点击其他任意一个tab后才会加载。有解的同学吼一声~~~~~~~Activity:复制代码 代码如下:package com.swordy.demo.android.frag
2015-05-04 19:31:44 418
原创 内部类
内部类的特性:1、同生共死2、可以相互访问3、内部成员变量可以访问到父类的东西4、父类可以操作内部类内部类的分类:成员内部类:定义在类的里边,方法的外面局部内部类:定义在方法里面的类静态内部类:public static class 类名匿名内部类:就好像时间监听时候的new View.onClickListener(){},这里new
2015-05-04 19:28:29 338
转载 Android 网络通信框架Volley简介(Google IO 2013)
Android 网络通信框架Volley简介(Google IO 2013)分类: Android2013-07-02 09:15 94594人阅读 评论(51) 收藏 举报 Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.
2015-05-04 19:27:23 385
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人