自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘宇的博客

想足够优秀,再大方拥有。

原创 使用Kafka的Connect监听Mysql数据并同步到ElasticSearch-刘宇

作者:刘宇。一、安装zookeeper1、解压zookeeper的tar包2、创建zookeeper所使用到的文件夹3、修改zookeeper配置文件4、添加zookeeper唯一标识二、安装kafka1、解压2、修改配置文件3、后台启动kafka三、安装Elasticsearch1、解压Elasticsearch2、修改配置文件3、创建data和logs文件夹4、创建启动用户5、启动Elasticsearch七、配置kafka中的Connect,实现将MySQL数据同步到Elasticsearch。

2020-08-07 15:05:15 8

原创 Java高并发编程中Condition在Lock中所充当的角色及用法-刘宇

作者:刘宇。一、什么是Condition?二、Condition常用方法1、await方法2、awaitNanos方法3、awaitUninterruptibly方法4、awaitUntil方法5、signal方法6、signalAll方法二、Condition练习1、单个Condition制作生产者与消费者2、多个Condition制作生产者与消费者。condition对象是依赖于lock对象的,是通过lock对象调用newCondition()方法创建出来的。

2020-08-06 13:55:55 10

原创 Java高并发编程中ReentrantLock、ReentrantReadWriteLock的使用及详细介绍-刘宇

作者:刘宇。一、ReentrantLock的简单介绍二、ReentrantReadWriteLock的简单介绍三、Lock接口1、lock方法2、lockInterruptibly方法3、tryLock方法4、unlock方法5、newCondition方法四、ReentrantLock的额外方法1、构造方法2、getOwner方法3、isHeldByCurrentThread方法4、isLocked方法5、isFair方法6、hasQueuedThreads方法7、hasQueuedThread方法

2020-08-05 19:37:50 17

原创 Linux下搭建MySQL主从复制、主主复制-刘宇

作者:刘宇。一、主从复制1、在两台数据库中分别创建数据库2、在主服务器进行如下配置:3、在从服务器进行如下配置:5、重启主服务器的mysqld服务并查看master状态6、重启从服务器并进行相关配置二、主主复制1、主主复制可能会出现的问题2、在两台数据库中分别创建数据库3、在第一台主服务器进行如下配置:3、在第二台主服务器进行如下配置:5、重启第一台主服务器的mysqld服务并查看master状态6、重启第二台服务器并进行相关配置作者:刘宇有部分资料参考,如有侵权

2020-08-04 17:14:18 13

原创 Linux下MySQL的tar及rpm的详细安装-刘宇

作者:刘宇。一、tar包安装1、为数据库创建软件目录以及数据存放目录2、上传mysql的tar包文件到/software/软件安装目录下并解压:4、创建mysql的用户组和用户5、修改mysql文件夹的用户组和用户权限6、更改mysql安装文件夹mysql-5.7.17/的权限7、检查是否缺少libaio依赖包。8、对mysql进行初始化9、启动mysql服务10、修改mysql.server配置文件11、将mysql.server文件拷贝到/etc/init.d/目录下

2020-08-04 17:12:39 24

原创 Java高并发编程中Semaphore的使用及详细介绍-刘宇

作者:刘宇。一、什么是Semaphore?二、常用方法1、构造函数2、acquire方法3、release方法4、acquireUninterruptibly方法5、getQueueLength方法6、availablePermits方法7、hasQueuedThreads方法8、getQueuedThreads方法9、tryAcquire方法一、什么是Semaphore?Semaphore 是 synchronized 的加强版,可以控制线程的并发数量,而单纯的synchronized是无法做到这一点的

2020-08-04 12:45:58 21

原创 Java高并发编程中Exchanger的使用及详细介绍-刘宇

作者:刘宇。Java高并发编程中Exchanger的使用及详细介绍-刘宇一、什么的Exchanger二、Exchanger的基本使用1、构造函数2、exchange()3、exchange(V x, long timeout, TimeUnit unit)三、简单示例1、exchange()2、exchange(V x, long timeout, TimeUnit unit)3、exchange传递对象时,传递的是否是引用。一、什么的Exchanger主要用于一对线程之间交换信息,必须是给成对的线程使用。

2020-08-03 09:09:19 13

原创 Java高并发编程中CyclicBarrier的使用及详细介绍-刘宇

作者:刘宇。Java高并发编程中CyclicBarrier的使用及详细介绍一、什么是CyclicBarrier二、CyclicBarrier的简单使用1、构造方法2、await()3、await(long timeout, TimeUnit unit)4、getParties()5、isBroken()6、getNumberWaiting()三、简单示例四、什么时候会出现BrokenBarrierException异常五、CyclicBarrier和CountDownLatch的区别

2020-08-02 14:30:23 16

原创 Java高并发编程中CountDownLatch的详细介绍-刘宇

作者:刘宇。CountdownLatch简介:CountDownLatch是一个同步工具类,用来协调多个线程之间的同步。CountDownLatch能够使一个或多个线程在等待其他一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,则表示所有的线程都已经完成任务,然后在CountDownLatch上等待的线程就会继续执行下面的代码。

2020-08-01 17:19:34 38

原创 Java中邪恶的Unsafe,一半天使一半魔鬼-刘宇

作者:刘宇。一、什么是Unsafe二、获取Unsafe三、Unsafe的功能汇总1、内存操作2、CAS相关3、线程调度4、Class相关5、对象操作6、内存屏障7、系统相关四、邪恶的Unsafe1、通过unsafe绕过构造函数2、通过unsafe修改对象中的属性3、通过unsafe加载类五、Lock、synchronized、Atomic、Unsafe在多线程下的性能比较1、无任何锁时2、加上synchronized锁时3、加上lock锁时4、加上Atomic原子类型时5、通过Unsafe自定义CAS算法

2020-07-31 12:28:04 55

原创 Java中Atomic原子类型的详细讲解(二)-刘宇

作者:刘宇。JAVA中原子类型详细讲解(二)一、AtomicReference介绍简述简单使用二、CompareAndSwap算法带来的ABA问题问题概述ABA问题之队列三、AtomicStampedReference介绍原理源码解释练习四、AtomicIntegerArray、AtomicLongArray、AtomicReferenceArray介绍创建get()set()getAndSet()compareAndSet()

2020-07-30 09:09:21 30

原创 Java中Atomic原子类型的详细讲解(一)-刘宇

作者:刘宇。JAVA中原子类型详细解释一、什么是原子类型二、原子类型的实现原理三、利用volatile关键字演示原子性问题演示为什么多个线程会输出相同的结果四、利用AtomicInteger解决原子性问题五、AtomicInteger的基本使用1、AtomicInteger的创建和get()方法2、set()3、getAndSet(int)4、getAndAdd(int)5、addAndGet(int)6、getAndIncrement()7、incrementAndGet()

2020-07-30 09:07:05 39 1

原创 Java中JVM类加载器详细介绍-刘宇

作者:刘宇。JVM类加载器详细介绍一、什么是类加载器二、类加载器的分类三、父委托加载机制优点名词解释三、自定义类加载器一、什么是类加载器根据一个指定的类的全限定名,找到对应的Class字节码文件,然后加载它转化成一个java.lang.Class类的一个实例。并且这个类对应的Class实例在堆区无论你加载多少次只会存在一个,除非使用不同的加载器去加载这个类,则会出现多个的效果。这是因为不同的加载器会出现命名空间的问题。二、类加载器的分类

2020-07-26 13:12:37 144

原创 Java中ClassLoader的加载过程-刘宇

作者:刘宇。JAVA中ClassLoader的加载过程1、基本概念1.1、如何结束JVM生命周期1.2、类加载的三个过程1.3、Java程序对类的使用方式主要分为两种1.3.1、主动使用:1.3.2、被动使用:1.3.3、特殊使用情况:1.4、类加载过程小练习2、JVM简单介绍2.1、虚拟机所管理的内存2.2、程序计数器2.3、Java 虚拟机栈2.4、本地方法栈2.5、Java 堆2.6、方法区3、类加载的三个阶段详解3.1、加载阶段3.1.1、加载类的方式。

2020-07-25 18:16:10 43

原创 Android-JSONObject对JSON数据进行创建和读取的操作-刘宇

JSON是JavaScript对象表示法,他和XML差不多,但是比XML更小、更快、更易解析。今天用JSONObject对其进行了创建和解析的实验。JSON数据是由对象或数组组成的,对象里面的数据是以键值对的方式存在的,而数组里面可以存放着很多的对象。 实验要求,创建以下的JSON数据并对其进行解析显示到TextView组件中:{    "cat":"it",    "langua...

2016-11-05 16:45:29 7562 1

原创 Android-利用Document来对xml进行读取和写入操作-刘宇

首先先来介绍一下什么xml。xml是可扩展标记语言,他可以用来标记数据,定义数据类型。是一种允许用户对自己标记语言进行定义的源语言。解析XML文件的方法有很多方法:dom解析,就是document以及PULL和SAX方法。今天给大家分享一下如何用Document来操作XML。 效果图:  首先先对布局文件进行操作:activity_main.xml: <?x...

2016-10-30 15:31:14 4628 1

原创 Android-ContentProvider之应用之间互传数据-刘宇

什么是ContentProvider呢,中文就内容提供者,他能将一个应用中的数据保存至数据库,并且这个数据库是私有的,在内部存储中,然后供其他应用访问。需要供其他应用访问,前提就是在这个应用下的AndroidManifest.xml设置内容提供者代码:注意:authorities是数据共享相当于钥匙,只有填对了这个才能访问,自定义name:内容提供者的名字,自定义exported:...

2016-10-25 19:32:10 3051 2

原创 Android-SharedPreference自动保存和手动保存数据-刘宇

什么是SharedPreference呢,他是安卓里面的一个轻量级的存储器,以键值对的方式存在,保存的目录在应用程序下的一个文件夹中。下面我们来看看如何使用这个SharedPreference来手动保存数据以及PreferenceActivity的界面交互自动保存数据。 手动保存数据效果图:自动保存数据效果图: 1、手动保存数据很简单,只需要获取到SharedPrefe...

2016-10-24 16:37:31 1466

原创 Android-AndroidStudio中常用的快捷键-刘宇

IDE 按键 说明 F1 帮助 Alt(Option)+F1 查找文件所在目录位置 Alt(Option)+1 快速打开或隐藏工程面板 Ctrl(Command)+Alt(Option)+ 打开设置对...

2016-10-23 11:13:16 1420

转载 Android-Translucent System Bar 的最佳实践-刘宇

今天看到一篇博客,是对Translucent System Bar的实践性的总结,觉得很有价值,于是就转载收藏了,我希望我的转载能让更多的人学习到这部分的知识。分享即美德,附上源代码地址:https://github.com/D-clock/AndroidSystemUiTraining Android 4.3豌豆荚看上图,Android 4.4之前,即使我们打开手机app,...

2016-09-25 00:44:51 314

转载 Android全球定位系统GPS使用教程大全-刘宇

说到GPS这个名词,相信大家都不陌生,GPS全球定位技术嘛,嗯,Android中定位的方式 一般有这四种:GPS定位,WIFI定准,基站定位,AGPS定位(基站+GPS); 本系列教程只讲解GPS定位的基本使用!GPS是通过与卫星交互来获取设备当前的经纬度,准确 度较高,但也有一些缺点,最大的缺点就是:室内几乎无法使用…需要收到4颗卫星或以上 信号才能保证GPS的准确定位!但是假如你是在室外,无网...

2016-09-15 23:27:56 1119 2

转载 Android的所有权限permission介绍-刘宇

今天无意在网上看到有关权限的博客,于是便抽空将他记录了下来,这篇博客内容来自于码农豆豆的博客,感谢他提供的内容。原文链接:http://www.cnblogs.com/fly_binbin/archive/2010/12/10/1902265.html 下面我们就来简单介绍一下:  android.permission.ACCESS_CHECKIN_PROPERTIES允许读写...

2016-09-15 23:18:05 5291

原创 Android全球定位系统GPS邻近警报-刘宇

在网上看到很多童鞋们说邻近警报运行起来无效,这里我为大家简单的介绍一下全部过程,你们可能缺少了哪一步哦,详情请看下面,大牛请绕过。 之前介绍了GPS获取当前位置和距离的计算,现在来介绍一下利用GPS来制作邻近警报功能,这个功能的作用是当你靠近一个地理位置一定的范围的时候会通知你,比如你已到达某建筑物附近。 效果图: 该功能的实现需要获取到位置管理器LocationMan...

2016-09-15 22:57:32 1214 4

原创 Android全球定位系统GPS距离计算-刘宇

GPS不光可以获取到当前位置信息,还可以通过里面的Location中的静态方法distanceBetween来判断两点之间的距离。 distanceBetween静态方法中有五个参数:第一个参数:表示第一个点的纬度第二个参数:表示第一个点的经度第三个参数:表示第二个点的纬度第四个参数:表示第二个点的经度第五个参数:表示这个方法返回的距离数组,是个float数组,范围是3...

2016-09-15 21:10:49 2723

原创 Android全球定位系统GPS实时获取位置-刘宇

GPS是全球定位系统,他能够获取到你当前的位置、方向、速度、高度等信息,这样可以帮助我们实现很多功能,如获取当前位置等信息、距离计算、邻近报警等功能。下面我就带大家一起来简单实现第一个功能获取当前位置等信息,大牛绕过。效果图:—————————————————————————————————————— 首先先介绍一下GPS定位系统API中的两个重要的方法:一、Locatio...

2016-09-15 20:29:20 10405 13

原创 Android蓝牙搜索设备,向其发送数据并接收-刘宇

通过蓝牙传输数据与Socket类似。在网络中使用Socket和ServerSocket控制客户端和服务端的数据读写。而蓝牙通讯也由客户端和服务端Socket来完成。蓝牙客户端Socket是BluetoothSocket,蓝牙服务端Socket是BluetoothServerSocket。这两个类都在android.bluetooth包中。      无论是BluetoothSocket,还...

2016-09-10 15:06:53 33486 66

原创 Android蓝牙搜索设备-刘宇

Bluetooth是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换。今天,我们一起来探讨在Android设备中如何去操作蓝牙。 效果图: 首先蓝牙有三种打开方式:第一:手动打开,这个普通用户基本都会第二:Intent代码打开 Intent enableIntent = new Intent(BluetoothAdapter.A...

2016-09-09 23:41:22 1245

原创 Android传感器系列介绍-刘宇

Android官方给我们提供一套Android sensor framework,俗称Android传感器框架,简称ASF。传感器分为动作传感器、位置传感器、环境传感器。由于传感器较多,使用过程差不多一样,这里就只演示动作传感器了。不懂的可以留言给我。由于模拟器不支持传感器操作,所以要在真机上运行。 源码下载:http://download.csdn.net/detail/liuyu973...

2016-08-20 18:11:49 1123

原创 Android的多点触摸之图片放大缩小-刘宇

在android中无论是游戏还是应用上来说,现在多点触摸已经越来越普遍了,晚上就试着写了一下,下面来和大家分享一下。值得注意的是,在进行测试的时候需要用真机测试,因为模拟器不支持多点触摸。 源码下载地址:http://download.csdn.net/detail/liuyu973971883/9606172 效果图:———————————————————————————...

2016-08-18 00:31:12 868

原创 SurfaceView模拟游戏组合图形移动动画-刘宇

SurfaceView在绘制图形方面有什么特点呢,我们都知道,在Android中,图形view交互都是通过主线程来完成的,这样在游戏、应用等多图形交互的时候会发生主线程阻塞,形成卡顿现象。而SurfaceView则是通过另外一个线程来完成的,这样就大大解决了这个问题。下面我们来模拟一下游戏组合图形的移动动画。 值得注意的是:SurfaceView在绘画的时候必须要在SurfaceView创...

2016-08-08 20:34:59 882

原创 Android中用ViewPager制作引导页-刘宇

我们通常看到在安装一个新应用的时候他会跳出一个引导页,然后翻到最后一页会有按钮让你点击,随后就会进入应用,第二次打开这个引导页就会消失。那么这样一个功能就是用Android中support包中的ViewPager来完成的,下面我们开始制作。 源码下载:http://download.csdn.net/detail/liuyu973971883/9597609 效果图:———...

2016-08-07 22:03:11 674 6

原创 利用DrawerLayout来写侧滑菜单-刘宇

在之前呢,我们通常都是用的SlidingMenu来做侧滑菜单,随后Google也推出来自己的侧滑菜单,就是DrawerLayout。下面我们利用ADT开发工具来一起开发吧。 源码下载:http://download.csdn.net/detail/liuyu973971883/9596952 点击左上角可以实现打开菜单,右滑也可以,打开菜单后,标题栏标题发生变化,右边搜索图标消失,...

2016-08-06 17:59:57 753

原创 Android中AS平台下制作ListView之下拉刷新-刘宇

在Androidstudio下配置下拉刷新功能,这个功能需要借助一个开源PullToRefresh项目,GitHub地址:https://github.com/chrisbanes/Android-PullToRefresh/ 我的源码下载地址:http://download.csdn.net/detail/liuyu973971883/9595478然后我们将其导入,发现有四个项目分...

2016-08-04 22:08:58 1184

原创 Android中RecyclerView组件中setLayoutManager方法的使用,使RecyclerView更有趣-刘宇

在我的博客中有讲到RecyclerView的使用,当中只是简单的描述了一下代码中的setLayoutManager需要设置,那么这个方法到底有什么功能呢,下面我就和大家分享一下,大牛请绕过…… 源码是用我博客中RecyclerView自定义布局里面的源码修改的。 首先我们先把之前的代码需要略微的改一下,就是list-cell里面的两个TextView的layout_width="m...

2016-08-04 00:47:02 28573 2

原创 Android中RecyclerView自定义布局文件-刘宇

之前我介绍了RecyclerView的简单使用,那么如何在RecyclerView中自定义布局呢,就像ListView那样,下面我给大家介绍一下,讲说和RecyclerView的简单使用那篇博客差不多,但是代码不同,大牛请绕过! 第一步:创建一个空的Activity项目,导入support-v7这个类库,用Androidstudio的童鞋们可直接右击项目Project Structure中...

2016-08-04 00:33:50 1163

原创 Android中RecyclerView的简单使用-刘宇

首先,先简单介绍一下什么是RecyclerView,他是Android-Support-v7中新的组件,用于代替ListView的,功能和效率方面有很大的提升; 第一步:创建一个空的Activity项目,导入support-v7这个类库,用Androidstudio的童鞋们可直接右击项目Project Structure中的Dependencies中直接从网上添加。然后在布局文件中添加其组...

2016-08-03 23:37:35 697

原创 Android中Fragment的使用,切换和返回等问题-刘宇

第一步:我们需要一个空的Activity并继承ActionBarActivity 第二步:创建一个Fragment,怎么创建一个Fragment呢,先创建一个layout命名FragmentMain,随后创建对应的java文件,命名MainFragment,文件的命名我们通常以Fragment开头。对应的java文件必须继承Fragment,注意导入的包,要是android.support...

2016-08-03 17:11:32 5582

提示
确定要删除当前文章?
取消 删除