随笔 - 632  文章 - 17  评论 - 54  阅读 - 93万

随笔分类 -  Java

上一页 1 2 3 下一页
Retrofit执行流程以及源代码分析详解
摘要:一、概述 Retrofit目前是Android网络请求中非常流行的一个框架。为什么这么流行?那就要从行业内的各位大佬的技术选型开始。我们一般在做技术选型的时候会参考以下几个标准: 1.框架是否能解决我们的问题 2.框架是否稳定 3.框架是否易用 根据以上三点,我们来谈谈为什么要用这个框架。 1.解决 阅读全文
posted @ 2020-02-25 15:21 飘杨...... 阅读(560) 评论(0) 推荐(0) 编辑
Android利用注解自定义一个超级简单的ButterKnife
摘要:一、概述 自从Java1.5后,其提供了一个非常强大的功能那就是注解。在普通的开发中可能不会自定义注解,甚至有些时候一个app开发下来完全不需要注解。但是想要在技术方面做一个纵深,自己封装框架,成为高级工程师,专家或者架构师,注解这块的知识是绕不开的。所以学习一下java中的注解对自己的内功修炼是非 阅读全文
posted @ 2020-02-24 17:56 飘杨...... 阅读(725) 评论(0) 推荐(0) 编辑
使用Gson+泛型制作一个序列化和反序列化的工具类
摘要:一、概述 本节给出一个封装好的使用Gson实现对象、List集合的序列化与反序列化的工具类。 1.Book.java类是一个javaben,里面定义了书本id和书本名称 2.JsonUtil.java是工具类 3.Test.java是测试类 二、具体实例 1.Book.java package co 阅读全文
posted @ 2020-02-23 19:16 飘杨...... 阅读(1209) 评论(0) 推荐(0) 编辑
Gson使用方法详解
摘要:一、概述 Gson是google提供的用来操作json数据的一个非常好用的类库。其使用范围非常的广泛,所以非常有必要对其进行系统的学习。 json是一种数据格式,确切的说是一种文本数据格式。其在网络通讯过程中的作用非常的明显。 目前大多数的网络通讯格式已经从xml替换为json格式。 其提供了序列化 阅读全文
posted @ 2020-02-23 15:59 飘杨...... 阅读(5477) 评论(0) 推荐(0) 编辑
RxJava2线程切换原理分析
摘要:一、概述 本节将分析RxJava2的线程切换模型。通过对线程切换源代码的分析到达对RxJava2线程切换彻底理解的目的。通过对本节的学习你会发现,RxJava2线程切换是如此的简单,仅仅是通过两个操作符就能完成从子线程到主线程,或者主线程到子线程,再或者从子线程到子线程的切换。对应的操作符为:obs 阅读全文
posted @ 2020-02-19 16:16 飘杨...... 阅读(3908) 评论(2) 推荐(0) 编辑
RxJava2链式调用操作符源码分析之map操作符
摘要:一、概述 在上一节中我们分析了一个最简单的从观察者被观察者的创建、数据的发送到接收的流程。本节会着重分析一下Map操作符的原理以及源代码级别的具体实现。 二、最简单的RxJava,从创建观察者、绑定观察者、发射数据到接收过程回顾(温故而知新,如果觉得不够清晰可以先看上一节的代码分析) 1.创建观察者 阅读全文
posted @ 2020-02-18 15:30 飘杨...... 阅读(771) 评论(0) 推荐(0) 编辑
RxJava2绑定流程分析之——观察者和被观察者是如何实现绑定的
摘要:一、概述 本小节从一个简单的当前线程绑定的例子说起,讲解一下RxJava2的被观察者和观察者是如何实现绑定的。搞明白原理以后就能够更好的理解:为什么上游只要执行了onNext方法,下游就能立马接收到。这就是传说中的“知其然,还有知其所以然”。嘎嘎。 二、最简单的绑定代码 绑定流程1.使用Observ 阅读全文
posted @ 2020-02-17 17:54 飘杨...... 阅读(447) 评论(0) 推荐(0) 编辑
Java代理模式(静态代理&动态代理)
摘要:一、概述 定义:为其他对象提供一种代理,以控制这个对象的访问。 代理模式的种类:静态代理和动态代理 二、静态代理 ps:我们创建一个Book用于基础操作,再创建一个JavaBook用来代理Book类的功能。 1.Book.java package com.yw.reflectjavalib.prox 阅读全文
posted @ 2020-02-16 18:27 飘杨...... 阅读(187) 评论(0) 推荐(0) 编辑
Java对泛型进行反射实战
摘要:一、概述 前两节接连介绍了,Java的反射技术,以及把Java的反射技术封装成类库。本节接下来介绍的内容都是基于以上两节来实现的。如果读者看起来吃力可以回过头看看前两节的内容,然后接着看本节内容。 二、实战 整体流程描述:首先先定义一个泛型的单例类Singleton,然后在BookManger中实例 阅读全文
posted @ 2020-02-16 17:37 飘杨...... 阅读(808) 评论(0) 推荐(0) 编辑
Java反射技术工具类
摘要:一、概述 在上一节详细介绍了Java的反射技术。例如:如何根据字符串获取一个Class对象,如何操作Method、Constructor、Filed等等。这一节针对上一节的内容做一个工具类的封装,让反射技术用起来更方便。 二、工具里:工具类中包含了所有必须的项,非常简单也非常的实用。 package 阅读全文
posted @ 2020-02-16 17:22 飘杨...... 阅读(424) 评论(0) 推荐(0) 编辑
Java反射例子汇总 Class Constructor Method Filed
摘要:一、反射概述 在平常的开发中Java的反射技术很少被用到,一般我们都是使用公司封装或者开源框架。而反射技术已经被包含到底层框架了,因此我们很少接触到。但是有些框架的原理或者源码如果想读懂就必须要理解并会使用反射技术。例如:EventBus、BufferKnife、android的插件化等等都会用到。 阅读全文
posted @ 2020-02-16 17:17 飘杨...... 阅读(230) 评论(0) 推荐(0) 编辑
四大开源站点(版本控制系统)
摘要:GitHubGoogle CodeMercurialBitbuckethttp://git.oschina.net/ 阅读全文
posted @ 2014-10-28 17:06 飘杨...... 阅读(280) 评论(0) 推荐(0) 编辑
stream classdesc serialVersionUID = -7218828885279815404, local class serialVersionUID = 1.
摘要:序列化类时出现的异常!当某一个类实现java.io.Serializable接口时,该类默认会生成一个private static final long serialVersionUID = 1L;如果你是网络客户端程序,当客户端序列化传入的实体类中的serialVersionUID 和接受到该序列... 阅读全文
posted @ 2014-04-15 15:07 飘杨...... 阅读(6100) 评论(0) 推荐(0) 编辑
java中使用阻塞队列实现生产这与消费这之间的关系
摘要:需求如下: 有一个生产者和一个消费者,生产者不断的生产产品,消费这不断的消费产品.产品总数为N. 1.生产顺序按队列的方式,先进先出. 2.生产者和消费这可以同时进行. 3.当生产者生产了N个产品后不能继续生产,消费者消费完后不能继续消费. 4.当生产完成,或者消费完成时,要节约CPU开支(不能使用Sleep); 5.尽量少定义变量,高效率实现.说明:花了一个小时实现的,如果有不同的意见,希望大家能够指出,共同学习共同进步.下面说一下我分析的过程: 题目上说: 1.有一个生产者和消费者,这个告诉我们至少要建立两个线程,一个生产者线程,一个消费者线程 2.由生产顺序:先... 阅读全文
posted @ 2014-03-16 19:06 飘杨...... 阅读(557) 评论(0) 推荐(0) 编辑
java Switch中的case后面加上大括号({})和不加大括号的区别
摘要:java基础求真之switch 的case 后面加上大括号和不加大括号的区别。下面给出三段代码大家看一下有什么不同以及哪段代码能够编译通过那段代码编译不能通过,为什么?(Why?)代码片段一: int value = 10; switch (value) { case 1: int value1 = 5; break; case 2: int value1 = 6; break; }代码片段二: int value = 10; ... 阅读全文
posted @ 2014-03-14 17:46 飘杨...... 阅读(16198) 评论(0) 推荐(0) 编辑
Java中关于类型自动提升的两个注意点。
摘要:问题一:在进行赋值运算时,进行类型提升: 例如:short s1 = 1;s1 = s1 + 1; (错的编译通不过)short s2 = 1;s2 += 1;(正确,编译和运行都能通过) 为什么呢?这其中就涉及到了类型的自动提升问题。解释如下: short s1 = 1; // 这个表达式会进行自动类型提示,因为1为int类型, // 所以提升后整体的数据类型为int类型。因为short类型为2个字节,int类型为4个字节, // 把四个字节的内容放到2个字节的内容中,编译肯定通不过。 //下面的表达式等效于:short... 阅读全文
posted @ 2014-03-14 16:48 飘杨...... 阅读(1147) 评论(0) 推荐(0) 编辑
Java使用线程并发库模拟弹夹装弹以及发射子弹的过程
摘要:同样是从网上看到的一个需求,需求描述都在代码中。不多说了,直接贴代码了。相信大家都能够看得懂的!package cn.yw.bore;import java.util.ArrayList;import java.util.List;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * 阅读全文
posted @ 2014-01-06 16:02 飘杨...... 阅读(1211) 评论(0) 推荐(0) 编辑
使用Java线程并发库实现两个线程交替打印的线程题
摘要:背景:是这样的今天在地铁上浏览了以下网页,看到网上一朋友问了一个多线程的问题。晚上闲着没事就决定把它实现出来。题目:1.开启两个线程,一个线程打印A~Z,两一个线程打印1~52的数据。2.实现交替打印,输出结果为12A34B...........5152Z.3.请用多线程方式实现。这种只有两个线程交替打印数据的题目其实相对还是比较简单的,如果利用传统线程无非就是synchronized(线程互斥)与wait(),notify()的问题。今天不用传统线程解决这个问题,我们用Java 1.5提供的线程并发库中的类来实现这个功能(实现流程和传统线程一样)下面是实现代码(我都加了注释,如果还是不同大家 阅读全文
posted @ 2014-01-05 23:02 飘杨...... 阅读(17439) 评论(2) 推荐(0) 编辑
Java JDK1.5、1.6、1.7新特性整理
摘要:转载请注明出处:http://www.cnblogs.com/tony-yang-flutter一、Java JDK1.5的新特性 1.泛型: List strs = new ArrayList();//给集合指定存入类型,上面这个集合在存入数据的时候必须存入String类型的数据,否则编译器会报错2.for-each 例如上面这个集合我们可以通过for-each遍历,这样更加简单清晰 for(String s : strs){ System.out.println(s); } 注意:使用for-each遍历集合时,要遍历的集合必须实现了Iterator接口3.自... 阅读全文
posted @ 2014-01-03 16:35 飘杨...... 阅读(8372) 评论(5) 推荐(0) 编辑
Java 中long类型转换成为int类型时可能会出错的地方
摘要:那计算两个日期之间间隔的天数为例来说明这个问题。下面是计算日期间隔天数的简单算法(主要出错的地方为红色标注的地方):public int getDay(String startDate, String endDate) { int m_intervalday = 0; SimpleDateFormat m_simpledateformat = new SimpleDateFormat("yyyy-MM-dd"); try { // 创建两个Date对象 Date date1 = m_simpledatefor... 阅读全文
posted @ 2013-12-30 16:18 飘杨...... 阅读(2815) 评论(0) 推荐(0) 编辑

上一页 1 2 3 下一页
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示