Java基础篇
木木嫑哭
向着更高的目标前进
展开
-
简单聊聊MD5和SHA-256加密
1. MD5和SHA-256MD5和SHA-256都是密码散列函数,加密不可逆,所谓的解密实为暴力破解。MD5和SHA-256可以实现对任意长度对象加密,这就决定了传入参数类型为byte数组,如果为int或者其他类型,就不能满足上述要求,任何对象都可以被转成byte数组,为了保持通用性而这样设计。MD5和SHA-256都不能防止碰撞,只是SHA-256碰撞几率小于MD5,这也是MD5被逐渐抛弃的原因,除非被加密的数据并没有那么大的价值才会用MD5加密。1.1 MD5简介MD5信息摘要算法,一种原创 2020-06-22 13:25:42 · 15422 阅读 · 1 评论 -
Java(IO流)文件拷贝
最近抽时间写了段文件拷贝的代码,目前测试无问题,如大家在使用过程中发现什么Bug,还请留言告知,或者你有什么疑问也留言,欢迎热爱编程的小伙伴一起学习交流~方法就是调用copyAllFile(String src,String dest)方法,将源文件夹/文件拷贝到目标文件夹下,跟用鼠标拖拽某个文件或者文件夹到另一个文件夹下的过程是一样的。参数src为源文件/源文件夹的路径(绝对、相对...原创 2019-12-23 19:04:16 · 202 阅读 · 0 评论 -
Java之重载和重写
重载(Overload):概念:在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。特征:必须是同一个类里面的方法 。 方法名必须相同。 参数列表个数或者参数类型不同(两者为或的关系,满足其一即可)。 返回值类型可以相同也可以不同。常见应用:类中构造函数的重载。代码示例:public static void main(String[] args...原创 2019-11-26 12:45:40 · 216 阅读 · 0 评论 -
Java之equals和==的区别
equals和==的区别: ==是比较引用类型的地址是否相同,或者数值类型的值大小是否相同 Object类下equals方法是比较两对象所指向地址是否相同 String类重写了Object类的equals方法,两对象所指向地址相同为true或者两字符串对象内容按位相等也为true//equals和==的区别//针对类对象Person p1 = ...原创 2019-11-26 12:15:57 · 144 阅读 · 0 评论 -
Java之super()方法
super()方法:(直接父类对象的引用。可以通过super.*来访问和调用父类中被子类覆盖(重写)的方法或属性)自动生成构造方法第一句总为super();(写或不写都会有,系统自动加)来调用父类的构造方法(一直追溯到Object对象),然后先创建Object再往下依次构造。 静态初始化块的调用顺序和构造方法的调用顺序一样,也是向上追溯然后再往下执行。 查找属性和方法与上面俩相反,这个是先...原创 2019-11-26 12:03:11 · 3319 阅读 · 0 评论 -
Java之导包与同名类解决问题解决
Java导包语句:import 包名;如果使用两个不同包的相同类,也就是当你像下面这样导包时会报错//错误方式import java.util.Date;import java.sql.Date;应该改为下面这样,导包时改用.*,并且在使用Date类时指明是哪个包的类,前面加上包路径。//正确方式import java.util.Date;import java.s...原创 2019-11-26 11:35:22 · 6596 阅读 · 0 评论 -
Java之static关键字
static关键字:(不管对象有没有创建,初始化类的时候就加载了)(static参与继承树追溯:类初始化时,先找到执行父类(Object)的静态块)static修饰的成员变量或者方法从属于类,而不是对象(静态变量和静态方法在JVM中位于方法区,普通方法和普通变量位于堆) 静态方法可以找到并调用静态变量,但是却不能找到或者使用非静态方法和变量 非静态方法可以查找并使用静态方法或变量第二条和...原创 2019-11-26 11:17:10 · 102 阅读 · 0 评论 -
Java之this关键字
this:(本质是创建好的对象的地址)在构造方法调用前对象已经创建,所以也可以在构造方法中使用this在程序产生二义性之处,应使用this来指明当前对象;普通方法中this指向调用该方法的对象;构造方法中this指向正要初始化的对象 使用this关键字调用重载的构造方法,避免相同的初始化代码(也就是调用第一个构造方法,减少代码量)。但只能在构造方法中用,并且必须位于构造方法的第一句。 th...原创 2019-11-26 11:05:43 · 77 阅读 · 0 评论 -
Java之类与虚拟机
Java中类的概念就不细说了,万物皆对象。我开始也不怎么理解,时间长了慢慢也就明白了。这篇主要来聊一下java中类和虚拟机之间的一些事情,在这之前先了解下虚拟机的组成栈、堆和方法区。先从我们的文件说起,我们平常编写的java代码都是以.java为结尾的文件,也就是源代码。以Stu类为例,Stu.java文件经过javac -Stu.java命令编译后变为Stu.class文件,接下来就需要执...原创 2019-11-25 19:00:30 · 187 阅读 · 0 评论 -
Java之BigInteger、BigDecimal
大数前面递归里面讲到的内容只适合计算比较小的阶乘,如果数据比较大的时候就需要用Java提供的类BigInteger了。类BigInteger:用于存储、操作任意长度的带符号的十进制数字,即不限长度的一串不带小数的数字。类BigDecimal:用于存储、操作任意精度和长度的带符号的十进制数字,即不限长度的一串可带小数的数字从BigInteger类的构造方法可以看到,是以数组方式存储...原创 2019-11-21 12:09:38 · 110 阅读 · 0 评论 -
Java之递归
递归是什么?方法自己调用自己,因为递归比循环运行速度慢,一般不用(只有在遍历目录查找文件时才用)递归的两种实现方式:1、函数自己调用自己//递归计算阶乘public static long mul(int a) { if(a==1) { return 1; }else { return a*mul(a-1); }}...原创 2019-11-20 10:14:36 · 132 阅读 · 0 评论 -
Java之类型转换
自动类型转换:容量小的数据类型可以自动转换成容量大的数据类型注意:容量不是指数据类型的字节大小,而是指该数据类型可以容纳的数据量的多少,比如lang(8字节)可以自动转换为float(4字节),因为float可以有小数,float类型的数据量远远多于long类型的数据。转换时可能会损失一定的精度(int或者long转向float和double时可能损失精度)强制类型转换:(转换后类型...原创 2019-11-19 18:31:04 · 120 阅读 · 0 评论 -
Java之关键字、标识符、运算符、数据类型、变量
一、关键字 abstract assert boolean break byte case catch char class const continue default do d...原创 2019-11-15 12:38:39 · 193 阅读 · 0 评论