Java
文章平均质量分 81
Al_assad
脚踏实地,不吹水不装逼不讥讽
展开
-
Java 8 方法引用和默认方法
Java8方法引用 方法引用有助于自己的名字指向方法。方法参考描述使用“::”符号。一种方法参考可以用来指向下列类型的方法。静态方法。实例方法。使用new运算符构造函数(TreeSet::new)方法参考实例使用所选择的任何编辑器创建下面的java程序C:/> JAVAJava8Tester.javaimport jav原创 2017-03-06 17:45:35 · 793 阅读 · 0 评论 -
基于Webmagic的爬取B站用户数据的爬虫
基于Webmagic的爬取B站用户数据的爬虫github: https://github.com/Al-assad/Spider-bilibiliUser-active数据示例样本:http://pan.baidu.com/s/1dFchDZj 验证码:b2fi学校数据挖掘作业要完成一个聚类分析,于是我想不如就到我大B站搞搞事情吧,于是开始研究B站用户数据的获原创 2017-04-18 01:15:33 · 12015 阅读 · 3 评论 -
JavaFX:播放视频和音频
JavaFX MediaPlayer支持的媒体编码以下是目前支持的编码格式:音频:MP3;包含非压缩PCM的AIFF;包含非压缩PCM的WAV;使用AAC音频的MPEG-4;(MP4)视频:包含VP6视频和MP3音频的FLV;使用H.264原创 2017-01-22 01:32:34 · 20868 阅读 · 9 评论 -
协程和线程
协程(Coroutine)与线程(Thread)协程和线程的区别协程和线程的共同目的之一是实现系统资源的上下文调用,不过它们的实现层级不同;线程(Thraed)是比进程小一级的的运行单位,多线程实现系统资源上下文调用,是编程语言交付系统内核来进行的(可能是并发,也可能是伪并发),大部分的编程语言的多线程实现都是抢占式的,而对于这些线程的控制,编程语言无法直接控制原创 2017-10-12 23:37:46 · 963 阅读 · 1 评论 -
Java 对国际化 (i18n) 的支持&资源包的调用
Java 国际化 i18n国际化信息也成为本地化信息,一般需要2个条件才能确定一个特定的国际化信息,分别是:“语言类型” 和 “国家/地区信息”,Java 为国际化提供了一系列类支持;常用的“语言类型” 和 “国家/地区信息”代码如下:语言类型代码:中文zh英语en日语ja法语fr原创 2017-12-01 18:15:25 · 6721 阅读 · 0 评论 -
JavaFX:Main,Controller,FXML之间的参数传递
JavaFX:Main,Controller,FXML之间的参数传递Controller获取FXML数据【.fxml文件】Pane fx:controller = "sample.Controller"> Button fx:id = "sample"> //设置fx:id属性,在根节点中设置 fx:controller属性Pane>【Controlle原创 2017-01-22 01:25:09 · 21175 阅读 · 7 评论 -
Java JSON 处理技术:Jackson
Jackson 处理 JSONJava 常用的 JSON 处理库包括 Gson、Json-lib、Jackson 等,Jackson 相对来说处理速度更快,拓展功能更加强大;Jackson 源码:https://github.com/FasterXML/jacksonJackson 提供了以下2种 JSON 解析器:ObjectMapper:把 JSON 解析到原创 2018-01-13 17:47:53 · 603 阅读 · 0 评论 -
apache-httpclient 快速使用
apache-httpclient 快速使用HttpClient 是 Apache Jakarta Common下的子项目,用于提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,支持 HTTP1.0 和 HTTP 1.1,支持 HTTP 的全部方法(GET,POST,PUT,DELETE 等);HttpClient 官网:http://hc.apache原创 2018-01-31 13:32:53 · 621 阅读 · 0 评论 -
OkHttp 网络库快速使用
OkHttp 快速使用Square-OkHttp 是一个基于 Java 的 HTTP 网络操作框架,可以提供比 JDK 的 URLConnection 更加强大的功能,同时在使用上比 Apache-HttpClient 更加简便高效;OkHttp 支持 HTTP 的 CRUD 方法(POST,GET,PUT,DELETE 等),支持 HTTP/2 、SPDY,同时也提供了对 HTT原创 2018-01-31 13:38:38 · 471 阅读 · 0 评论 -
Java实现基础的client/server模型
java对网络的支持1、java支持基于流的通信(Stream-based communication),也支持基于包的通信(backage-based communication)2、基于流的通信使用TCP协议(传输控制协议),基于包的通信使用UDP协议(用户数据报协议);3、相对于UDP协议,TCP协议能发现丢失的传输信息并且重新发送,因此大多数java程序采用基于流的通信;原创 2016-11-01 08:24:57 · 3515 阅读 · 0 评论 -
Java线程的基本机制
线程1、Java采用比较传统的方式,在顺序语言的基础上提供对线程的支持:多线程机制是在由执行程序所表示的单一进程中创建任务;2、Java的线程机制是抢占式,即调度周期会周期性地中断线程,将上下文切换到另一个线程,从而为每一个线程提供时间片,使得每一个线程都会分配到数量合理的时间去驱动它的任务;3、线程(Thread):一个任务从头到尾的执行流;4、时间共享(time s原创 2016-11-01 08:45:05 · 781 阅读 · 0 评论 -
Java List 和 数组之间的相互转化
JDK1.8以下的处理方式List-> 数组1ListString> list = new ArrayListString>(Arrays.asList("are","you","ok","?"));2String[] array = new String[list.size];3list.toArray(array);数组->List原创 2017-07-29 02:09:28 · 3057 阅读 · 0 评论 -
Java和JavaScript的相互调用
在JAVA中调用JavaScript用Java8,Nashorn大大提高了JavaScript 引擎引入,以取代现有的Nashorn Java脚本引擎。Nashorn提供2至10倍更好的性能,因为它直接编译代码在存储器,并传递到字节码JVM.Nashorn使用invokedynamics函数,在Java7引入以提高性能。使用ScriptEngineManager,JavaScript代原创 2017-03-06 17:50:51 · 6043 阅读 · 0 评论 -
Selenium(1): 基本示例
SeleniumSelenium 是目前用的最广泛的Web UI 自动化测试框架,目前支持linux,window,mac多平台运行;Selenium支持的浏览器IE6-10FireFox大部分版本(selenium 2.52目前不支持firefox47.0以上的版本,最新的3.4版本未测试)ChromeSafariOperaAndrioid原创 2017-06-12 23:21:15 · 806 阅读 · 0 评论 -
Selenium(2): DOM元素定位、操作
DOM 元素定位定位过程WebDriver对象的findElement函数定义一个Web页面元素;findElements方法可以定位页面的多个元素;使用WebElement对象来存储定位的元素,以便后续操作;id 定位driver.findElement(By.id(“id的值”));na原创 2017-06-12 23:22:51 · 4941 阅读 · 0 评论 -
Selenium(3): 浏览器操作
浏览器最大化 前进,后退, 刷新WebDriver driver = new WebDriver();driver.get("http://www.test.com"); // 浏览器最大化driver.manage().window().maximize();// 刷新浏览器driver.navigate().refresh();// 浏览器后退driver.naviga原创 2017-06-12 23:23:52 · 620 阅读 · 0 评论 -
Selennium(4):智能等待
当使用selenium操作页面上某个元素的时候, 需要等待页面加载完成后, 才能操作,或者碰到AJAX异步加载,需要等待元素加载完成后, 才能操作;应对这样的情况,selenium 中提供了非常简单,智能的方法,来判断元素是否存在;隐式等待对页面设置隐式等待,挂起线程,直到页面元素刷出或等待阀值;WebDriver driver = new Firefo原创 2017-07-16 08:43:26 · 1039 阅读 · 0 评论 -
Java 处理 JSON
Java 处理 JSONJava 处理 JSON 需要的第三方库: 以上包的合集下载地址:http://download.csdn.net/download/gaidandan/7335445对于与 JSONObject 进行转化的 Java 对象,都要将其实现为一个 JavaBean;关于 JavaBean 最简单的规定如下:提供一个默认的无参原创 2017-07-29 02:07:10 · 1224 阅读 · 0 评论 -
ThreadLocal<T> Java线程局部变量
ThreadLocal Java线程局部变量 在 IBM XML,FORTRAN 等语言中在语法层面就提供了线程局部变量,但是Java在语法层面并没有提供这样的支持,而是在 JDK 1.2 开始就提供了 java.lang.ThreadLocal (并在JDK1.5开始支持泛型 ThreadLoca )用于支持线程局部变量 ,使用ThreadLocal 工具类可以很简洁地编写多线程层程序,原创 2017-12-15 09:33:28 · 590 阅读 · 0 评论 -
Centos下安装配置 JDK 和 Tomcat
Linux 下安装配置 JDK 和 Tomcat安装配置JDK这里通过yum的方式在Centos下快速安装JDK,在Debian,Ubuntu下对应使用apt-get工具,基本方法一样;以下以配置 java-1.8.0-openjdk-devel 为例,openjdk-devel 中含有JDK和JRE,可以同时用于生产环境和开发环境,加入服务器只是作为生场环境,可以在yum下只原创 2017-07-31 13:48:55 · 944 阅读 · 0 评论 -
Java 客户端连接 Memcached & Spring 集成
Memcached Memcached 安装配置 & 基本指令Java 客户端连接 Memcached & Spring 集成Java 客户端连接 Memcached目前连接 Memcahed 服务的 Java 客户端主要有以下 3 种方案:Memcached Client for JavaSpyMemcahedXMemcached其中 Memcahed 是比较早期,使用广泛的技术...原创 2018-02-12 17:18:52 · 609 阅读 · 0 评论 -
Java 单例模式(Singleton Pattern)的6种基本实现
1、懒汉式,线程不安全Lazy 初始化,多线程不安全;描述:这种方式是最基本的实现方式,这种实现最大的问题就是不支持多线程。因为没有加锁 synchronized,所以严格意义上它并不算单例模式。这种方式 lazy loading 很明显,不要求线程安全,在多线程不能正常工作。代码实例: p原创 2018-02-07 14:27:21 · 543 阅读 · 0 评论 -
GOF 面向对象 23 种设计模式详解
GOF 设计模式笔记总结自 GOF 的 《Design Patterns - Elements of Reusable Object-Oriented Software》,Erich Gamma、Richard Helm、Ralph Johnson 、John Vlissides 4 位作者基于基于面向对象设计原则提出了一下的基本观点:对接口编程而非对实现编程;优先使用原创 2018-02-07 14:41:41 · 4104 阅读 · 1 评论 -
MongoDB JDBC 基本使用
MongoDB 入门专栏http://blog.csdn.net/column/details/19681.htmlJava 连接 MongoDBMongoDB 提供了一系列的驱动用于支持各种语言连接 mongodb 数据库,包括:Java,Python,C++,Scala,PHP 等,完整的驱动列表:https://docs.mongodb.com/manual/applications/dri...原创 2018-02-22 02:04:57 · 20620 阅读 · 6 评论 -
Java字节码反编译工具 jclasslib
Java 字节码反编译工具 在对 Java 代码执行过程效率分析过程中会很经常查看代码编译后的字节码,或者将字节码反编译后,查看Java底层对于原来代码的优化结果,当然 JDK 本身已经提供了 javap 反编译工具可以完成这一过程, 也有很多第三方工具可以提供更加方便的可视化功能,如 JD-GUI,jclasslib 等,以下介绍 IDEA(Intellij 大法好) 的 jclassl...原创 2018-09-01 18:21:38 · 2080 阅读 · 0 评论 -
[转载]Java 线程 5 种状态下的线程中断
[转载]Java并发之线程中断原文章地址:https://blog.csdn.net/qq_35326718/article/details/78137108 前面的几篇文章主要介绍了线程的一些最基本的概念,包括线程的间的冲突及其解决办法,以及线程间的协作机制。本篇主要来学习下Java中对线程中断机制的实现。在我们的程序中经常会有一些不达到目的不会退出的线程,例如:我们有一个...转载 2018-09-04 19:28:25 · 1324 阅读 · 0 评论 -
JDK8 Stream 数据流效率分析
JDK8 Stream 数据流效率分析 Stream 是Java SE 8类库中新增的关键抽象,它被定义于 java.util.stream (这个包里有若干流类型: Stream<T> 代表对象引用流,此外还有一系列特化流,如 IntStream,LongStream,DoubleStream等 ),Java 8 引入的的Stream主要用于取代部分Collection的操作...原创 2018-09-03 23:26:57 · 17840 阅读 · 12 评论 -
JDK8 Stream 详细使用
JDK8 管道 Stream 详细使用介绍 Stream 的获取① 通过集合Collection获取List<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5));Stream<Integer> stream = list.stream();② 通过数组获取...原创 2018-09-03 23:58:53 · 13140 阅读 · 10 评论 -
Java NIO(3) 通道:FileChannel,SocketChannel,ServerSocketChannel
Java NIO 1. Java NIO 基本组件介绍2. Java NIO 核心组件:Buffer 缓冲器3. Java NIO 核心组件:Channel 通道4. Java NIO 核心组件:Selector 选择器,Pipe 管道Channel 通道Java NIO 的主要 Channel 实现类有以下:FileChannel:用于原创 2018-02-06 17:33:42 · 1018 阅读 · 0 评论 -
Java NIO(4) Selector 选择器,Pipe 通道
Java NIO 1. Java NIO 基本组件介绍2. Java NIO 核心组件:Buffer 缓冲器3. Java NIO 核心组件:Channel 通道4. Java NIO 核心组件:Selector 选择器,Pipe 管道Selector 选择器Java NIO 的 Selector 选择器用于监视操控通道的行为,可用作可以进入非阻塞模式的特殊原创 2018-02-06 17:36:21 · 916 阅读 · 0 评论 -
Java NIO(2) Buffer 缓冲器详解
Java NIO 1. Java NIO 基本组件介绍2. Java NIO 核心组件:Buffer 缓冲器3. Java NIO 核心组件:Channel 通道4. Java NIO 核心组件:Selector 选择器,Pipe 管道Buffer 缓冲器Java NIO 的 Buffer 由数据和索引(用于高效访问和操纵数据)组成,这些索引包括4个:原创 2018-02-06 17:21:10 · 1822 阅读 · 0 评论 -
Java XML 处理技术:XStream
Java XML 处理技术目前 JAXP(Java API for XMLProcessiong)提供的处理 XML 文档的方法可以分为 2 种:DOM、SAX/STAX ,以及它们的拓展技术;DOM(Document Object MOdel)DOM 文档对象模型是一种通过编程方式对 XML 文档中的数据模型及结构进行访问的标准;DOM 是基于原创 2018-01-13 17:48:55 · 608 阅读 · 0 评论 -
Java使用DOM读写 XML
使用DOM对象处理XMLXML文件xml version="1.0" encoding="UTF-8"?>persons> person> name>Assadname> age>22age> home>Shanghaihome> person> person> name>Johnname>原创 2017-01-13 17:30:30 · 1394 阅读 · 1 评论 -
Java RMI 远程方法调用 和 Spring 封装
Java RMI 的基本使用RMI(remote method invocation,远程方法调用)Java 的 RPC 解决方法调用,用于不同 JVM 虚拟机的通信,这些虚拟机可以位于不同主机,或者同一个主机上面,由一个 JVM 上的对象调用另一个 JVM 上的对象的方法,是分布式系统通信的解决方案之一;以下通过一个示例,来演示 RMI 远程调用方法的过程;完整示原创 2018-02-02 20:39:11 · 518 阅读 · 0 评论 -
Ehcache 2.x 快速使用 & Spring 集成
Ehcache 2.x 快速使用简介Ehcache 是一个开源的高性能缓存,拥有很高的拓展性和伸缩性,广泛使用各种 Java 项目中(如 Hibernate 默认使用 Ehcache作为二级缓存),在目前基于 Java 的缓存方案里,几乎是性能最高的实现;Ehcache 2.10 技术文档:http://www.ehcache.org/generated/2.10.4/html/ehc-all/使...原创 2018-02-09 22:50:28 · 1523 阅读 · 0 评论 -
Ehcache 3.x 快速使用
Ehcache 3.X快速使用简介Ehcache 是一个开源的高性能缓存,拥有很高的拓展性和伸缩性,广泛使用各种 Java 项目中(如 Hibernate 默认使用 Ehcache作为二级缓存),在目前基于 Java 的缓存方案里,几乎是性能最高的实现,目前新版本的 Ehcache 3.X 通过支持 Terracotta 改善了2.X 版本体验不佳的分布式缓存支持;Ehcahe 3.X 和 Eha...原创 2018-02-09 22:52:58 · 14244 阅读 · 0 评论 -
Redis(4)客户端连接:Java
Redis Redis(1)安装 & 配置Redis(2)基本键值操作Redis(3)常用维护操作Redis(4)客户端连接:JavaSpring 集成 Reids(Spring-data-redis)Redis 客户端连接:JavaRedis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,Redis 内部会进行以下一些操作:客户端...原创 2018-02-12 02:18:21 · 920 阅读 · 0 评论 -
Spring 集成 Reids(Spring-data-redis)
Redis Redis(1)安装 & 配置Redis(2)基本键值操作Redis(3)常用维护操作Redis(4)客户端连接:JavaSpring 集成 Reids(Spring-data-redis)Spring 集成 Reids(Spring-data-redis)如果要在 Spring 中集成 Redis,可以直接装载 Jedis 的 JedisPoolFactory ,需要自己封装...原创 2018-02-12 02:20:06 · 1218 阅读 · 0 评论 -
Java NIO(1) 基本组件简介
Java NIO 1. Java NIO 基本组件介绍2. Java NIO 核心组件:Buffer 缓冲器3. Java NIO 核心组件:Channel 通道4. Java NIO 核心组件:Selector 选择器,Pipe 管道Java NIO 简介Java 除了提供标准 I/O 系统之外,在 Java 1.4 开始提供了 NIO 系原创 2018-02-06 17:18:51 · 1507 阅读 · 0 评论 -
Java 线程同步器:从 synchronized、Lock 到 StampedLock
Java 线程同步器:从 synchronized、Lock 到 StampedLock synchronized 和 lock 的对比synchronized 关键字和 juc 中的 Lock 可以说是 Java 最为常用的线程同步器了,以下我们从多个角度来比较这两者的区别;首先我们先看一个实际例子中的两者代码的区别:一个线程共享对象 TimerBeanpubli...原创 2018-09-07 00:19:42 · 1017 阅读 · 0 评论