
java基础
Franco蜡笔小强
小码农
展开
-
各种Java加密算法-非对称加密
RSA 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。 这种加密算法的特点主要是密钥的变化,上文我们看到DES只有一个密钥。相当于只有一把钥匙,如果这把钥匙丢了,数据也就不安全了。RSA同时有两把钥 匙,公钥与私...转载 2020-03-12 15:21:28 · 9401 阅读 · 1 评论 -
各种Java加密算法-对称加密
如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm,安全散列算法) HMAC(Hash Message Authentication Code,散列消息鉴别码) 复杂的对称加密(DES、PBE...转载 2020-03-12 15:20:00 · 1255 阅读 · 0 评论 -
异常(一)
Java的基本理念是“结构不佳的代码不能运行”!!!!! 大成若缺,其用不弊。 大盈若冲,其用不穷。 在这个世界不可能存在完美的东西,不管完美的思维有多么缜密,细心,我们都不可能考虑所有的因素,这就是所谓的智者千虑必有一失。同样的道理,计算机的世界也是不完美的,异常情况随时都会发生,我们所需要做的就是避免那些能够避免的异常,处理那些不能避免的异常转载 2017-09-22 16:49:18 · 231 阅读 · 0 评论 -
Java开发必会的Linux命令
作为一个Java开发人员,有些常用的Linux命令必须掌握。即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令。因为很多服务器上都是Linux系统。所以,要和服务器机器交互,就要通过shell命令。本文并不会对所有命令进行详细讲解,只给出常见用法和解释。具体用法可以使用–help查看帮助或者直接通过google搜索学习。1.查找文件 fi转载 2017-10-30 10:30:56 · 421 阅读 · 0 评论 -
spring bean初始化及销毁的回调方法。
spring bean在初始化和销毁的时候我们可以触发一些自定义的回调操作。初始化的时候实现的方法1、通过java提供的@PostConstruct注解;2、通过实现spring提供的InitializingBean接口,并重写其afterPropertiesSet方法;3、通过spring的xml bean配置或bean注解指定初始化方法,如下面实例的initMethod方法通过@bean注解指...原创 2018-05-07 20:09:16 · 1246 阅读 · 0 评论 -
Java的各种打包方式(JAR/WAR/EAR/CAR)
JAR (Java Archive file)包含内容:class、properties文件,是文件封装的最小单元;包含Java类的普通库、资源(resources)、辅助文件(auxiliary files)等部署文件 : application-client.xml容器: 应用服务器(application servers)级别:小WAR (Web Archive file)包含...转载 2018-06-12 09:50:35 · 4437 阅读 · 0 评论 -
Java中的增强for循环(for each)的实现原理与坑
在JAVA中,遍历集合和数组一般有以下三种形式:for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i) + ",");}Iterator iterator = list.iterator();while (iterator.hasNext()) { System.out.print(it...转载 2018-06-14 09:56:56 · 2359 阅读 · 0 评论 -
Java中的装箱和拆箱—这一篇全了解
Java中的拆箱装箱—这一篇全了解一.什么是装箱?什么是拆箱?Java为每种基本数据类型都提供了对应的包装器类型,让基本类型具备对象的特征,实现更多的功能.。在Java SE5之前,如果要生成一个数值为10的Integer对象,必须这样进行:Integer i = new Integer(10);而在从Java SE5开始就提供了自动装箱的特性,如果要生成一个数值为10的Inte...原创 2018-08-21 16:26:41 · 10569 阅读 · 5 评论 -
什么是值传递,什么是引用传递。为什么说Java中只有值传递。
关于这个问题,在StackOverflow上也引发过广泛的讨论,看来很多程序员对于这个问题的理解都不尽相同,甚至很多人理解的是错误的。还有的人可能知道Java中的参数传递是值传递,但是说不出来为什么。在开始深入讲解之前,有必要纠正一下大家以前的那些错误看法了。如果你有以下想法,那么你有必要好好阅读本文。错误理解一:值传递和引用传递,区分的条件是传递的内容,如果是个值,就是值传递。如果是个引...转载 2018-08-30 10:07:48 · 15331 阅读 · 0 评论 -
基本数据类型分类
Java中有8种基本数据类型分为三大类。字符型:char(16位)布尔型:boolean数值型:1.整型:byte(8位)、short(16位)、int(32位)、long(64位) 2.浮点型:float(32位)、double(64位)String不是基本数据类型,是引用类型。...原创 2018-09-11 09:38:15 · 2848 阅读 · 0 评论 -
Java中整型的缓存机制
问:什么是Java中整型的缓存机制?参考链接:[译]Java中整型的缓存机制-HollisChuang's BlogJava中Integer的缓存相关知识。这是在Java 5中引入的一个有助于节省内存、提高性能的功能。首先看一个使用Integer的示例代码,从中学习其缓存行为。接着我们将为什么这么实现以及他到底是如何实现的。你能猜出下面的Java程序的输出结果吗。如果你的结果和真正结果...原创 2018-09-26 18:16:24 · 341 阅读 · 0 评论 -
String知识点-这一篇全部了解
字符串是常量,在定义之后不能被改变String源码(java7)定义public final class String implements java.io.Serializable, Comparable<String>, CharSequence{}属性private final char value[];final类型字符数组实现存储字符串内容p...原创 2018-08-08 16:38:16 · 1563 阅读 · 0 评论 -
我终于搞清楚了和String有关的那点事儿。
String,是Java中除了基本数据类型以外,最为重要的一个类型了。很多人会认为他比较简单。但是和String有关的面试题有很多,下面我随便找两道面试题,看看你能不能都答对:Q1:String s = new String("hollis");定义了几个对象。Q2:如何理解String的intern方法?上面这两个是面试题和String相关的比较常考的,很多人一般都知道答案。A1...转载 2018-06-26 11:34:47 · 306 阅读 · 0 评论 -
深入解析String中的intern
引言在 JAVA 语言中有8种基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。8种基本类型的常量池都是系统协调的,String类型的常量池比较特殊。它的主要使用方法有两种:直接使用双引号声明出来的String对象会直接存储在常量池中。如果不是用双引号声明的String对...转载 2017-09-14 15:23:19 · 408 阅读 · 0 评论 -
java数组内存分配内存结构详解
原文:https://m.2cto.com/kf/201611/561021.html数组是静态的Java 语言是典型的静态语言,因此 Java 数组是静态的,即当数组被初始化之后,该数组 所占的内存空间、数组长度都是不可变的。Java 程序中的数组必须经过初始化才可使用。所谓初始化,即创建实际的数组对象,也就是在内存中为数组对象分配内存空间,并为每个数组 元素指定初始值。数组的初始化...原创 2019-04-07 16:06:05 · 1591 阅读 · 0 评论 -
【源码】Integer
Integer 类在对象中包装了一个基本类型 int 的值。Integer 类型的对象包含一个 int 类型的字段。此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法。类定义public final class Integer extends Number implements Comparable原创 2017-09-11 20:40:38 · 381 阅读 · 0 评论 -
Java 8的新特性—终极版
前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java 8 – Lambdas and Concurrency、Java 8 Date Time API Tutorial : LocalDateTime和Abstract Class Versus转载 2017-09-25 22:36:25 · 288 阅读 · 0 评论 -
Java中的equals()和hashcode()之间关系
所有Java类的父类——java.lang.Object中定义了两个重要的方法:public boolean equals(Object obj)public int hashCode()本文首先会给出一个错误使用这两个方法的例子,然后再解释equals和hashcode是如何协同工作的。一个常犯的错误先看以下代码:import java.util.HashMap;pub原创 2017-09-17 19:53:52 · 291 阅读 · 0 评论 -
NoSql数据库探讨
现在Nosql应用的越来越多,但为什么要用NoSql呢?什么情况下用Nosql呢?随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题:1、对数据库高并发读写的需求转载 2017-08-26 22:03:47 · 707 阅读 · 0 评论 -
Java中的Switch对整型、字符型、字符串型的具体实现细节
Java 7中,switch的参数可以是String类型了,这对我们来说是一个很方便的改进。到目前为止switch支持这样几种数据类型:byteshort int char String 。但是,作为一个程序员我们不仅要知道他有多么好用,还要知道它是如何实现的,switch对整型的支持是怎么实现的呢?对字符型是怎么实现的呢?String类型呢?有一点Java开发经验的人这个时候都会猜测swit转载 2017-09-13 11:44:53 · 2088 阅读 · 0 评论 -
windows xshell 跳板机登陆
1- 设置跳板机2E60089C-923A-4888-BE53-CEB13E46E869.png2- 设置用户身份验证,秘钥验证A71075EB-A59C-4F73-A095-C4B8C502B395.png3.设置登录后跳转3A3D6531-10EF-4C8A-86EF-ACAC4267A106.png4.设置跳板机代理08C06592原创 2017-08-28 09:02:49 · 1673 阅读 · 0 评论 -
异常(二)
五、自定义异常 Java确实给我们提供了非常多的异常,但是异常体系是不可能预见所有的希望加以报告的错误,所以Java允许我们自定义异常来表现程序中可能会遇到的特定问题,总之就是一句话:我们不必拘泥于Java中已有的异常类型。 Java自定义异常的使用要经历如下四个步骤: 1、定义一个类继承Throwable或其子类。 2、添加构造方法(当然也转载 2017-09-23 12:00:45 · 166 阅读 · 0 评论 -
Java反射与动态代理
反射——Java高级开发必须懂的通过反射API可以获取程序在运行时刻的内部结构。反射API中提供的动态代理也是非常强大的功能,可以原生实现AOP中 的方法拦截功能。正如英文单词reflection的含义一样,使用反射API的时候就好像在看一个Java类在水中的倒影一样。知道了Java类的内部 结构之后,就可以与它进行交互,包括创建新的对象和调用对象中的方法等。这种交互方式与直接在源代码中使用的...原创 2017-09-23 23:16:49 · 232 阅读 · 0 评论 -
java工厂模式的学习,与反射机制相、外部配置相结合
工厂模式定义:百度百科:实例化对象,用工厂方法代替new操作。工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能转载 2017-09-23 23:19:31 · 216 阅读 · 0 评论 -
FastJson常用指南
FastJSON是一个Java语言编写的高性能,功能完善,完全支持http://json.org的标准的JSON库。在此,简单的总结一下自己用过,测试过的方法。如果使用Maven,在pom.xml文件加入以下依赖。1 dependency>2 groupId>com.alibabagroupId>3 artifactId>fastjsonartifactId>原创 2017-09-25 21:27:46 · 364 阅读 · 0 评论 -
Java实用类库
每个方法都有一个链接,可以查看他们在开源代码中具体是如何使用的。1. org.apache.commons.io.IOUtilscloseQuietly ( )toString ( )copy ( )toByteArray ( )write ( )toInputStream ( )readLines ( )copyLarge ( )lineIterator ( )readFul原创 2017-09-25 22:15:58 · 348 阅读 · 0 评论 -
Java中的四种访问级别
Java中有三个很常用的关键字:public protected 和 private。我们可以称呼他们为访问控制(级别),也可称呼为作用域。怎么称呼都不重要,重要的是理解他们的作用及用法。Java访问级别包含两个部分:1)对类和访问级别 2)对成员的访问级别。在对类的访问进行限制的时候,关键字可以是public或者不明确指定类修饰符(package-private)。在对类里面的成员做原创 2017-09-17 19:28:11 · 11985 阅读 · 0 评论 -
Java中的可变参数
什么是可变参数可变参数(variable arguments)是在Java 1.5中引入的一个特性。它允许一个方法把任意数量的值作为参数。public static void main(String[] args) { print("a"); print("a", "b"); print("a", "b", "c");}public static void p转载 2017-09-17 19:30:10 · 249 阅读 · 0 评论 -
Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念
PO(persistant object) 持久对象在 o/r 映射的时候出现的概念,如果没有 o/r 映射,没有这个概念存在了。通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的 java 对象。最简单的 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。 PO 中应该不包含任何对数据库的操作。DO(Domain Obj转载 2017-09-17 19:59:06 · 307 阅读 · 0 评论 -
简单介绍Java中Comparable和Comparator
Comparable 和 Comparator是Java核心API提供的两个接口,从它们的名字中,我们大致可以猜到它们用来做对象之间的比较的。但它们到底怎么用,它们之间有又哪些差别呢?下面有两个例子可以很好的回答这个问题。下面的例子用来比较HDTV的大小。看完下面的代码,相信对于如何使用Comparable和Comparator会有一个更加清晰的认识。Comparable一个实现了Comp转载 2017-09-17 20:01:57 · 634 阅读 · 0 评论 -
深入理解Java中的重写和重载
重载(Overloading)和重写(Overriding)是Java中两个比较重要的概念。但是对于新手来说也比较容易混淆。本文通过两个简单的例子说明了他们之间的区别。定义重载简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。重写重写指的是在Java的子类与父类中有两个名称、参数列表都相同的方法的情转载 2017-09-17 20:26:36 · 386 阅读 · 0 评论 -
Java中的迭代与递归
递归提到迭代,不得不提一个数学表达式: n!=n*(n-1)*(n-2)*...*1有很多方法来计算阶乘。有一定数学基础的人都知道n!=n*(n-1)!因此,代码的实现可以直接写成:代码一int factorial (int n) { if (n == 1) { return 1; } else { return n*factoria转载 2017-09-17 20:34:21 · 282 阅读 · 0 评论 -
windows杀死进程
如何查看程序占用的端口一、 查看所有进程占用的端口 在开始-运行-cmd,输入:netstat –ano可以查看所有进程二、查看占用指定端口的程序 当你在用tomcat发布程序时,经常会遇到端口被占用的情况,我们想知道是哪个程序或进程占用了端口,可以用该命令 netstat –ano|findstr “指定端口号” 二、查看占用指定端口的程序 当你在用t原创 2017-03-23 16:01:06 · 1671 阅读 · 0 评论