Java
文章平均质量分 93
yubo_725
大前端攻城狮
展开
-
Android AOP编程(四)——ASM基础
前言在前面几篇博文中我记录了Android AOP编程使用的一些库,主要是AspectJ和Javassist:Android AOP编程(一)——AspectJ基础知识Android AOP编程(二)——AspectJ语法&实战Android AOP编程(三)——Javassist基础AspectJ和Javassist都能直接操作Class文件,本篇记录的是ASM,也是一个可以操作Java字节码的库,它的使用可能更复杂一些,本篇只做最基本的使用方法记录。什么是ASMAS原创 2021-07-09 11:05:25 · 10392 阅读 · 3 评论 -
Android Transform API的使用
TransformAPI是什么从 1.5.0-beta1 开始,Gradle 插件包含一个 Transform API,允许 3rd 方插件在将编译的类文件转换为 dex 文件之前对其进行操作。(API 在 1.4.0-beta2 中存在,但在 1.5.0-beta1 中已完全修改)此 API 的目标是简化注入自定义类操作而无需处理任务,并为操作的内容提供更大的灵活性。内部代码处理(jacoco、progard、multi-dex)在 1.5.0-beta1 中已经全部转移到这个新机制。注意:这仅适原创 2021-07-08 11:06:46 · 10787 阅读 · 0 评论 -
Android Gradle插件开发基础
什么是Gradle在Gradle官方文档上是这么描述的:Gradle 是一种开源构建自动化工具,其设计足够灵活,几乎可以构建任何类型的软件。Gradle 允许您构建任何软件,因为它对您尝试构建的内容或应该如何完成几乎没有做出任何假设。最显着的限制是依赖管理目前只支持 Maven 和 Ivy 兼容的存储库和文件系统。Gradle 将其构建建模为任务(工作单元)的有向无环图 (DAG)。这意味着构建本质上是配置一组任务并将它们连接在一起——基于它们的依赖——以创建该 DAG。创建任务图后,Gradle原创 2021-07-07 15:41:57 · 11465 阅读 · 0 评论 -
Android AOP编程(三)——Javassist基础
什么是Javassist这是Javassist官方网站上的说明:Javassist(Java 编程助手)使 Java 字节码操作变得简单。它是Java中用于编辑字节码的类库;它使 Java 程序能够在运行时定义一个新类,并在 JVM 加载类文件时修改它。与其他类似的字节码编辑器不同,Javassist 提供了两个级别的 API:源代码级和字节码级。如果用户使用源级 API,他们可以在不了解 Java 字节码规范的情况下编辑类文件。整个 API 仅使用 Java 语言的词汇表设计。您甚至可以以源文本的形式原创 2021-07-06 15:28:05 · 6634 阅读 · 0 评论 -
Android AOP编程(二)——AspectJ语法&实战
在上一篇Android AOP编程(一)——AspectJ基础知识中我记录了在Android中使用AspectJ实现AOP编程的一些基础知识,但是AspectJ的使用其实最主要的是针对切面的语法,找切面并不难,难的是如何编写匹配这个切面的规则,本篇主要记录的就是AspectJ的语法,以及使用一个实例来解释AspectJ的应用。AspectJ语法整理以下关于AspectJ的语法整理全部出自网络收集,并未一一验证,若有错误请指出。execution使用execution(<匹配表达式>).原创 2021-07-06 12:17:07 · 6946 阅读 · 1 评论 -
Android AOP编程(一)——AspectJ基础知识
什么是AOP以下是维基百科上对AOP的介绍:面向切面的程序设计(Aspect-oriented programming,AOP,又译作面向方面的程序设计、剖面导向程序设计)是计算机科学中的一种程序设计思想,旨在将横切关注点与业务主体进行进一步分离,以提高程序代码的模块化程度。通过在现有代码基础上增加额外的通知(Advice)机制,能够对被声明为“切点(Pointcut)”的代码块进行统一管理与装饰,如“对所有方法名以‘set*’开头的方法添加后台日志”。该思想使得开发人员能够将与代码核心业务逻辑关系不那原创 2021-07-05 15:18:28 · 6923 阅读 · 0 评论 -
深入理解Java注解(三)——编译时注解实战
在前面两篇博客中我记录了Java注解的一些知识点,以及如何使用JavaPoet生成Java源码,本篇主要记录的是使用Java编译时注解完成一个类似于ButterKnife的Android View注入功能,通过注解即可完成View的ID绑定,不再显式调用findViewById方法。如果对Java注解还不太熟悉,可以参考我前面两篇博文:深入理解Java注解(一)——注解基础 | 深入理解Java注解(二)——JavaPoet使用开始本篇博客的代码还是基于深入理解Java注解(一)——注解基础 这.原创 2021-07-01 10:42:52 · 6835 阅读 · 0 评论 -
深入理解Java注解(二)——JavaPoet使用
什么是JavaPoetJavaPoet是使用Java编写的一个库,主要用于生成Java源代码,其GitHub地址为:https://github.com/square/javapoet之所以本篇会记录JavaPoet,主要是因为很多开源库都使用到了Java编译时注解,而处理注解时基本都用到了JavaPoet去生成新的Java代码,要想了解编译时注解的流程,必须先了解前置知识JavaPoet。JavaPoet的使用从JavaPoet的GitHub主页可以看到这个库的代码并不多,所有的类都位于com.s原创 2021-06-30 14:13:30 · 7228 阅读 · 1 评论 -
深入理解Java注解(一)——注解基础
一直以来对Java注解的理解都不是特别深刻,但是在多年的软件开发生涯中接触了不少注解相关的东西,所以有必要深入理解一下Java注解知识,通过本篇博客记录学习Java注解的一些知识点。什么是Java注解举个例子,在Java开发中,我们会使用@Override标记一个被子类复写的方法,使用@Deprecated标记一个方法或者一个类表示方法或类已被弃用,不再推荐使用。这里的@Override @Deprecated就是Java注解,查看@Override源码如下:package java.lang;.原创 2021-06-29 10:59:37 · 6130 阅读 · 0 评论 -
Java截屏代码,截取全屏
public class Test { public static void main(String[] args) throws Exception { Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); Robot robot = new Robot(); BufferedImage bufferedImage原创 2015-06-15 14:43:45 · 3357 阅读 · 0 评论 -
Java写的TCP聊天程序,服务端收不到客户端发送的数据
这个操蛋的问题居然浪费了我好几个小时,记得以前写的时候没出现这种情况的,今天写了一下服务端居然收不到客户端发送的消息,最后终于找到问题所在了,客户端向输出流中写数据时,最后面要加换行符\n,这样服务端才能正常接收数据!!!妈蛋!!!切记!!!原创 2015-04-28 11:22:01 · 4623 阅读 · 5 评论 -
一个用Java写的简单的TCP聊天程序
服务端代码:package com.test.server;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class Serve原创 2015-04-28 09:41:47 · 16141 阅读 · 2 评论 -
Java中使用RandomAccessFile类实现多线程下载
多线程下载文件的注意点主要有:1、确定每个线程下载的文件大小,用这种方法计算:先获取整个文件的大小length,然后除以线程个数count得到每个线程下载的块大小为blockSize = length / count每个线程的起始下载点为:startPos = blockSize * i,结束下载点为:endPos = blockSize * (i + 1) - 1其中最后原创 2014-07-18 15:01:30 · 3865 阅读 · 0 评论 -
Java的反射机制
使用Java的反射机制获取类的对象,有ru原创 2014-09-29 16:57:57 · 584 阅读 · 0 评论 -
Java Math.round方法
public class Main { public static void main(String[] args) { System.out.println(Math.round(3.49)); // 3 System.out.println(Math.round(3.5)); // 4 System.out.println(Math.round(-3.49)); // -3原创 2014-09-29 12:08:20 · 1114 阅读 · 0 评论 -
Java中String类的split方法
今天想用Java字符串类的split方法切割一个图片文件名,获取不带后缀的文件名,开始这么用的:public class Test { public static void main(String[] args) { String fullName = "hello.jpg"; String preName = fullName.split(".")[0]; System.ou原创 2014-12-05 22:20:54 · 3952 阅读 · 0 评论 -
关于Java中的Calendar类获取月份
我们在使用Java提供的Calendar类获取月份时,一般会用到如下代码:import java.util.Calendar;import java.util.Date;public class TestCalendar { public static void main(String[] args) { Calendar c = Calendar.getInstance();原创 2014-12-11 22:34:54 · 21342 阅读 · 1 评论 -
Java使用jxl操作Excel文件
记录一下平时的开发中使用Java操作Excel文件的方法,包括读取Excel文件和写Excel文件,这里用到了jxl.jar包,下面上代码:/**获取表头的格式*/ public static WritableCellFormat getWritableHeaderCellFormat(){ WritableFont font = new WritableFont(WritableFon原创 2014-12-29 14:02:07 · 1007 阅读 · 0 评论 -
Java中的字符串数组和字符串List互相转化
在开发过程中,总是会遇到String[]和List的互相转化,要是自己写转化方法,太麻烦了,还好Java为我们提供了相应的方法,先看由数组转化为Listimport java.util.Arrays;import java.util.List;public class Test { public static void main(String[] args) { String[]原创 2015-01-04 17:07:29 · 9903 阅读 · 0 评论 -
Java字符串格式化为时间,时间格式化为字符串
在开发中经常会涉及到取当前系统时间,无外乎分两种情况:给定字符串,格式化为Date类型;给定Date,格式化为指定的字符串一、将Date格式化为字符串import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;public class Test { public stat原创 2015-03-10 10:22:18 · 4733 阅读 · 0 评论 -
Java将汉字转化为拼音的源码
直接上源码:/** * Java汉字转换为拼音 * */public class CharacterParser { private static int[] pyvalue = new int[] {-20319, -20317, -20304, -20295, -20292, -20283, -20265, -20257, -20242, -20230, -20051, -20原创 2015-03-10 10:46:22 · 2045 阅读 · 0 评论 -
如何在Java中使用SQLite数据库
用一个小例子熟悉下如何在Java中使用SQLite数据库,要在Java中使用SQLite数据库首先需要导入原创 2014-07-18 16:00:23 · 1875 阅读 · 0 评论