在实际的项目开发过程中,经常需要产生一些随机数值,例如网站登录中的校验数字等,或者需要以一定的几率实现某种效果,例如游戏程序中的物品掉落等. 在Java API中,在java.util包中专门提供了一个和随机处理有关的类,这个类就是Random类.随机数字的生成相关的方法都包含在该类的内部. Random类中实现的随机算法是伪随机,也就是有规则的随机.在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字. 相同种子数的Random对象,相…
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类. 所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入.删除等操作,使用StringBuffer要更加适合一些. 在StringBuffer类中存在很多和String类一样的方法,这些方法在功能上和String类中的功能是完全一样的. 但是有一个最显著的区别在于,…
IO是输入和输出的简称,在实际的使用时,输入和输出是有方向的.就像现实中两个人之间借钱一样,例如A借钱给B,相对于A来说是借出,而相对于B来说则是借入.所以在程序中提到输入和输出时,也需要区分清楚是相对的内容. 在 程序中,输入和输出都是相对于当前程序而言的,例如从硬盘上读取一个配置文件的内容到程序中,则相当于将文件的内容输入到程序内部,因此输入和“读”对 应,而将程序中的内容保存到硬盘上,则相当于将文件的内容输出到程序外部,因此输出和“写”对应.熟悉输入和输出的对应关系,将有助于后续内容的学习…
I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程的一个基本能力.本章IO类的使用就从读写文件开始. 1 文件操作 文件(File)是 最常见的数据源之一,在程序中经常需要将数据存储到文件中,例如图片文件.声音文件等数据文件,也经常需要根据需要从指定的文件中进行数据的读取.当然, 在实际使用时,文件都包含一个的格式,这个格式需要程序员根据需要进行设计,读取已…
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用. 1.成员变量 System类内部包含in.out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流(显示器)和标准错误输出流(显示器). 例如: System.out.println(“Test”); 该行代码的作用是将字符…
在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理. 一.这里简单介绍一下Date类的使用. 1.使用Date类代表当前系统时间 Date d = new Date(); System.out.println(d); 使用Date类的默认构造方法创建出的对象就代表当前时间,由于Date类覆盖了toString方法,所以可以直接输出Date类型的对象,显示的结果如下: Sun Mar 0…
1.String对象的初始化 由于String对象特别常用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下: String s = “abc”; s = “Java语言”; 其实按照面向对象的标准语法,其格式应该为: String s = new String(“abc”); s = new String(“Java语言”); 只是按照面向对象的标准语法,在内存使用上存在比较大的浪费.例如String s = new String(“abc”);实际上创建了两个…
Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class),有些地方也翻译为外覆类或数据类型类. 包装类均位于java.lang包,包装类和基本数据类型的对应关系如下表所示: 包装类对应表 基本数据类型 包装类 byte Byte boolean Boolean short Short char Ch…
7.算法竞赛中的常用JAVA API :String .StringBuilder.StringBuffer常用方法和区别 摘要 本文将介绍String.StringBuilder类的常用方法. 在java中String类不可变的,创建一个String对象后不能更改它的值.所以如果需要对原字符串进行一些改动操作,就需要用StringBuilder类或者StringBuffer类,StringBuilder比StringBuffer更快一些,缺点是StringBuilder不是线程安全的,但在算法…
前言 在上一篇中介绍了ElasticSearch实战系列二: ElasticSearch的DSL语句使用教程---图文详解,本篇文章就来讲解下 ElasticSearch 6.x官方Java API的使用. ElasticSearch JAVA API 目前市面上有几种常见的ElasticSearch Java API架包,JestClient.SpringBoot整合的SpringData.Spring整合的ElasticsearchTemplate.Elasticsearch Bboss等一…
密码与我们的生活息息相关,远到国家机密,近到个人账户,我们每天都在跟密码打交道: 那么,密码从何而来?生活中常见的加密是怎么实现的?怎么保证个人信息安全?本文将从这几方面进行浅谈,如有纰漏,敬请各位大佬指正. 代码部分从第二章节--常见加密算法开始,对代码比较感兴趣的铁子们可以从第二章节开始看. 一. 密码学发展史 密码学是网络安全.信息安全.区块链等产品的基础,常见的非对称加密.对称加密.散列函数等,都属于密码学范畴. 密码学有数千年的历史,从最开始的替换法到如今的非对称加密算法,经历了古典密…
摘要 本文将介绍String.StringBuilder类的常用方法. 在java中String类不可变的,创建一个String对象后不能更改它的值.所以如果需要对原字符串进行一些改动操作,就需要用StringBuilder类或者StringBuffer类,StringBuilder比StringBuffer更快一些,缺点是StringBuilder不是线程安全的,但在算法竞赛中一般我们用不到多线程.所以,主要推荐使用StringBuilder类. String: 方法概述: String 类包…
/* * 线程安全(多线程分析) * 安全 -- 同步 -- 数据是安全的 * 不安全 -- 不同步 -- 效率高一些 * 安全和效率问题是永远困扰我们的问题. * 安全:医院的网站,银行网站 * 效率:新闻网站,论坛之类的 * * StringBuffer: * 线程安全的可变字符串. * * StringBuffer和String的区别? * 前者长度和内容可变,后者不可变. * 如果使用前者做字符串的拼接,不会浪费太多的资源. StringBuffer就相当于一个水杯,或者说是一个高效的容…
引言 String 类及其相关的StringBuilder.StringBuffer 类在 Java 中的使用相当的多,在各个公司的面试中也是必不可少的.因此,在本周,我打算花费一些时间来认真的研读一下 String.StringBuilder.StringBuffer类 的相关代码. String的不可变性 这个特性是 String 相当重要的一个特性,为了深入理解,我直接贴上其源代码 public String concat(String str) { int otherLen = str.…
一.StringBuffer连接字符操作 当一个字符串的内容需要被经常改变时就要使用StringBuffer 在StringBuffer中使用append()方法,完成字符串的连接操作   二.StringBuffer类的常用方法 No. 方法定义 类型 描述 1 public StringBuffer() 构造 StringBuffer的构造方法 2 public StringBuffer append(char c) 方法 在StringBuffer中提供了大量的追加操作(与String中使…
Java中的原始数据类型都有哪些,它们的大小及对应的封装类是什么? byte——1 byte——Byte short——2 bytes——Short int——4 bytes——Integer long——8 bytes——Long float——4 bytes——Float double——8 bytes——Double char——2 bytes——Character boolean——————Boolean boolean数据类型非true即false. 这个数据类型表示1 bit,但是它…
1. String 1.String对象是不可变的 String类的value属性是用来存放字符串里面的值的.这个属性是被final修饰的.final修饰的变量不能够被第二次赋值,所以字符串是不可变的. 2.java9 以后的String更节约空间,每个字符占用1个字节 String类型在java9之前采用的是char[]来保存对应的值,因此每个字符串占用2个字节.但是到了java9之后,采用byte[]数组加一个encode-flag字段来保存,字符串的每个字符只占用1个字节.所以java9的…
Lambda简介 Lambda作为函数式编程中的基础部分,在其他编程语言(例如:Scala)中早就广为使用,但在Java领域中发展较慢,直到java8,才开始支持Lambda. 抛开数学定义不看,直接来认识Lambda.Lambda表达式本质上是匿名方法,其底层还是通过invokedynamic指令来生成匿名类来实现.它提供了更为简单的语法和写作方式,允许你通过表达式来代替函数式接口.在一些人看来,Lambda就是可以让你的代码变得更简洁,完全可以不使用——这种看法当然没问题,但重要的是lamb…
“附近的人”这个功能估计都不陌生,与之类似的功能最开始是在各大地图应用上接触过,比如搜附近的电影院,附近的超市等等.然而真正让附近的人火遍大江南北的应该是微信"附近的人"这个功能,记得微信刚出的时候,坊间还有一句"寂寞女聊玩微信,寂寞男人搜附近"的说法. v准备工作 创建测试数据库 CREATE TABLE `userposition` ( `id` ) unsigned NOT NULL AUTO_INCREMENT, `city` ) NOT NULL, `po…
这里我们使用SpringBoot 来调用阿里通信的服务. 阿里通信,双11.收到短信,日发送达6亿条.保障力度非常高. 使用的步骤: 1.1. 第一步:需要开通账户 1.2. 第二步:阅读接口文档 1.2.1. 秘钥管理 1.2.2. 短信签名 1.2.3. 短信模板 1.3. SDK 这个由阿里云提供. 编译与打包. 打包到本地仓库,或者公司局域网内的私服地址. Maven打包 1.4. 第三步:创建SpringBoot工程,导入依赖 <!-- sms单独打包 --> <depende…
概括 1. 创建.删除及启用禁用表.添加列等都需用到HBaseAdmin,另外需要注意删除,添加列等操作都需要禁用表 2. 表中添加数据,查询等都是和HTable相关,如果是多线程的情况下注意用HTablePool 3.  插入数据使用Put,可以单行添加也可批量添加 4. 查询数据需使用Get,Result,Scan.ResultScanner等 一.HBaseConfiguration org.apache.hadoop.hbase.HBaseConfiguration 对HBase进行配置…
首先介绍一点,es的版本从之前的2.x跳跃到5.x,很多插件要保持一致,不然会产生很多版本不兼容的问题. 首先看一个demo先熟悉一下, 具体代码在git服务器上: https://github.com/wangchuanfuvip/es-demo.git…
Java NIO 由以下几个核心部分组成: Channels Buffers Selectors 虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API.其它组件,如Pipe和FileLock,只不过是与三个核心组件共同使用的工具类.因此,在概述中我将集中在这三个组件上.其它组件会在单独的章节中讲到. Channel 和 Buffer 基本上,所有的 IO 在NIO 中都从一个Channel 开始.Channel 有点…
一.什么叫做编程 首先我们应该了解一下什么叫做编程. 百度百科词条的解释: 编程是编定程序的简称,是让计算机代我们解决某个问题,是对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程. 对于该解释,大家也包括我自己可能并不是很理解,那我们反正就这么理解,一般来说编程就是写代码,目的是为了解决问题,解决什么问题需要看需求,看甲方爸爸的需求,所以也就有了需求工程师这个职位. 这么理解,简单.粗暴,哈哈哈. 但是有个误区要提醒一下,编程不一定是针对计算机程序而言的,…
TensorFlow.data : http://tech.ifeng.com/a/20171109/44752505_0.shtml Pytorch:https://ptorch.com/docs/1/datasets…
类的概念:类是具有相同属性和服务的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分.在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分. 对象的概念:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位.一个对象由一组属性和对这组属性进行操作的一组服务组成.从更抽象 的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用:它是一组属性和有权对这…
Java程序设计实用教程 by 朱战立 & 沈伟 学习笔记之JAVA多线程(http://www.cnblogs.com/pegasus923/p/3995855.html) 国庆休假前学习了多线程,休假花了两天时间把整本书学完了.看书还就得一鼓作气. 第一章 概述 1995年SUN正式发布Java,前身是Oak. 1998年发布带有JDK1.2的Java 2. JDK(JAVA DEVELOPMENT KIT),也称作JAVA SDK(JAVA SOFTWARE DEVELOPMENT KIT…
一.简述 截至到目前(2019.04),HBase 有两个主要的版本,分别是1.x 和 2.x ,两个版本的Java API有所不同,1.x 中某些方法在2.x中被标识为@deprecated过时.所以下面关于API的样例,我会分别给出1.x和2.x两个版本.完整的代码见本仓库: Java API 1.x Examples Java API 2.x Examples 同时你使用的客户端的版本必须与服务端版本保持一致,如果用2.x版本的客户端代码去连接1.x版本的服务端,会抛出NoSuchColu…
一.简述 截至到目前 (2019.04),HBase 有两个主要的版本,分别是 1.x 和 2.x ,两个版本的 Java API 有所不同,1.x 中某些方法在 2.x 中被标识为 @deprecated 过时.所以下面关于 API 的样例,我会分别给出 1.x 和 2.x 两个版本.完整的代码见本仓库: Java API 1.x Examples Java API 2.x Examples 同时你使用的客户端的版本必须与服务端版本保持一致,如果用 2.x 版本的客户端代码去连接 1.x 版本…
java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及Java API 本篇博客主要介绍“类安全管理器及Java API”的基本原理,如需了解其它几类安全机制可以通过上面的博客链接进入查看. 简介 java安全沙箱的前三类保证了jvm所运行程序的完整性,使得jvm不会因为运行有漏洞或恶意的代码而导致出现不可预期的状态.而第四类沙箱模型是“类安全管理器及J…