java基础
Hepburn Yang
匠心精神
展开
-
Java File ,byte[] , 二进制字符串之间互转
File ,byte[] , 二进制字符串之间互转的多种方法汇集 /** * File转Byte[] 方法一 * @param file * @return */ public static byte[] fileToBinArray(File file){ try { InputStream fis ...原创 2020-01-04 15:22:49 · 5029 阅读 · 1 评论 -
【java基础】--02.变量
一、属性:也叫成员变量,也叫实例变量成员变量 & 局部变量 的区别?①作用域不同②内存中的位置不同③成员变量有默认值,而局部变量没有默认值(局部变量使用前必须赋初始值)成员变量的默认值:基本数据类型:byte short int —> 0long —> 0Lfloat —> 0.0Fdouble —> 0.0Dchar —> ‘\u0...原创 2016-11-06 19:53:16 · 1177 阅读 · 21 评论 -
【Java基础】--03.构造器
一、构造器:也叫构造器方法,是类的成员之一。属性方法构造器1 2 31、 构造器的格式访问控制修饰符 类名(参数列表){ //初始化语句}1 2 32.、构造器的作用①创建对象②为对象进行初始化3、构造器的注意:①构造器的名称必须与类名一致!②若一个类中没有显示提供任何构造器,系统会自动提供一个默认无参构造器 pub...原创 2016-11-12 21:04:18 · 2025 阅读 · 66 评论 -
【Java基础】--04.声明和使用数组
一、数组:用于批量保存一类数据。是引用数据类型之一。1、声明变量 //变量的格式 : 数据类型 变量名 = 值; int j = 0; int j; j = 0;2、声明数组int[] scores;String[] names;Person[] persons;3、为数组初始化并赋值//静态初始化: 初始化操作和赋值操作...原创 2016-11-18 20:51:56 · 1329 阅读 · 63 评论 -
【Java基础】--05.java基本类型与包装类型
java中基本类型和包装类型的区别1、包装类是对象,拥有方法和字段,对象的调用都是通过引用对象的地址,基本类型不是2、包装类型是引用的传递,基本类型是值的传递3、声明方式不同,基本数据类型不需要new关键字,而包装类型需要new在堆内存中进行new来分配内存空间4、存储位置不同,基本数据类型直接将值保存在值栈中,而包装类型是把对象放在堆中,然后通过对象的引用来调用他们5、初始值不同,e...原创 2016-11-19 19:52:05 · 854 阅读 · 25 评论 -
【Java基础】--05.java常用类( 2. Date/SimpleDateFormat 时间类)
在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类。这个类最主要的作用就是获取当前时间,我们来看下 Date 类的使用:![这里写图片描述](https://img-blog.csdn.net/20180729211755279?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1lZWlpIQ...原创 2016-11-27 17:03:58 · 1002 阅读 · 25 评论 -
【Java基础】--06.java内部类与枚举类
一、内部类:在一个类中声明另一个类。 里面的类:内部类 外面的类:外部类1. 成员内部类:①是类的成员之一。 (属性、方法、构造器、代码块)②内部类可以使用四种访问控制修饰符(public protected default private)③static final //创建静态内部类对象 Person.Mobile pm = new Pers...原创 2016-11-29 11:45:25 · 991 阅读 · 17 评论 -
【Java 基础】 -- 内部类
内部类内部类包括:成员内部类(最常见)含义在类的内部再定义一个类1.成员内部类:内部类访问外部类的成员时候:外部类.this.变量名;实例化一个内部类时候外部类对象.new 内部类名();//外部类HelloWorldpublic class HelloWorld{ //外部类的私有属性name private String n...原创 2016-12-25 21:14:00 · 1116 阅读 · 107 评论 -
Java基础 -- 集合
一、java数组:特点:简单的线性序列,大小固定(对比arraylist),指定类型(对泛型)对比arraylist:arraylist基于数组,扩容(1.5倍)开销大,效率低于简单数组,默认大小为10; 对比泛型:指定基本类型对应的包装类,可自动拆装箱变成基本类型,但会增加性能消耗,效率低于简单数组set存储元素是无序的(元素在底层存储的位置...原创 2017-03-05 22:14:07 · 1800 阅读 · 38 评论 -
JAVA IO 包
IO流用来处理设备之间的流动输入:数据从硬盘到内存(读)输出:数据从内存到硬盘(写)流分类:字节流:(InputStream,OutputStream)字符流:字节流读取文字数据后,不直接操作而是先查指定的编码表。获取对应的文字。(Reader,Writer)Uncode码表,世界通用的字符流的缓冲区:BufferedWriterBuffere...原创 2017-03-19 22:44:32 · 1034 阅读 · 41 评论 -
Java8新特性
一、简介:特点:速度更快(hashcode示例:) 代码更少(lambda表达式) 强大的streamAPI (操作数据类似sql) 便于并行 最大化的减少空指针异常 Optionalhashcode:数组-链表-红黑树哈希碰撞算法,什么时候会扩容, entry占满了hashtable的0.75以后,2倍扩容,链表的entry会被重新计...原创 2017-03-26 12:11:55 · 4284 阅读 · 37 评论 -
Java 集合- List
Java 的 List 是非常常用的数据类型。 List 是有序的 Collection。 Java List 一共三个实现类:分别是 ArrayList、 Vector 和 LinkedList。## ArrayList(数组)ArrayList 是最常用的 List 实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔, 当数组大小不满足时需要增加存储能力,就要将已经有数组的数据复制到新的存储空间中。 当从 ArrayList 的中间位置插入或者删除元原创 2017-06-11 18:00:54 · 1148 阅读 · 17 评论 -
Java集合 -- Set
Set 注重独一无二的性质,该体系集合用于存储无序(存入和取出的顺序不一定相同)元素, 值不能重复。对象的相等性本质是对象 hashCode 值(java 是依据对象的内存地址计算出的此序号) 判断的, 如果想要让两个不同的对象视为相等的,就必须覆盖 Object 的 hashCode 方法和 equals 方法。原创 2017-06-11 18:11:04 · 661 阅读 · 5 评论 -
【java基础】--01.基础语法
一、标识符与关键字标识符:凡是自己命名的地方都叫标识符。 如: 包名、类名、接口名、方法名、变量名、常量名关键字:被Java赋予了特殊含义的单词。 命名的规则 (必须遵守,若不遵守编译不能通过) ①可使用 字母 A-Z a-z 数字 0-9 特殊字符 下划线 “_” 和 美元符 “$” ②数字不能开头 ③其中不能包含空格 ④不能使用关键字和保留字,但是可以包含关键字和保留字...原创 2016-10-28 16:10:45 · 1008 阅读 · 29 评论 -
jsp + servlet + jdbc +mysql 简单验证登录
1.编写CheckServletpackage com.test.servlet;/* @author 天赋吉运-yxh*/import com.test.entity.User;import com.test.service.CheckUserService;import javax.servlet.RequestDispatcher;import javax.servlet...原创 2016-09-30 17:03:06 · 1248 阅读 · 18 评论 -
开启你的 Servlet
servlet是什么?运行在服务器的java应用程序; (一个特殊的java类) 作用? 接收客户端的请求和响应响应的数据tomcat是一个servlet容器,也是一个web服务器,现在我们以tomcat为例解析一下一个请求的处理流程;一个请求的处理流程请求到达tomcat内置web服务器 内置的web服务器将请求转发给servlet容器 servl...原创 2016-08-17 16:55:31 · 957 阅读 · 8 评论 -
【Mybatis工作流程源码时序图】-- 03-获得Mapper对象-getMapper
Mybatis工作流程源码时序图-- 03-获得Mapper对象-getMapper原创 2018-08-12 20:30:47 · 624 阅读 · 4 评论 -
【Mybatis工作流程源码时序图】-- 04-执行sql-MapperProxy
Mybatis工作流程源码时序图-- 04-执行sql-MapperProxy原创 2018-08-19 21:19:40 · 524 阅读 · 11 评论 -
【Java基础】-- 内存分配之堆、栈、常量池
Java内存分配主要包括以下几个区域:寄存器:我们在程序中无法控制栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中堆:存放用new产生的数据静态域:存放在对象中用static定义的静态成员常量池:存放常量非RAM(随机存取存储器)存储:硬盘等永久存储空间(1)堆和常量池String s1 = "abc"; // 常量池...原创 2018-08-26 21:33:04 · 462 阅读 · 14 评论 -
【jwt学习笔记】--理论入门
概要JWT是一种用于双方之间传递安全信息的简洁的、URL安全的表述性声明规范。JWT定义了一种简洁的,自包含的方法用于通信双方之间以Json对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法或者是RSA的公私秘钥对进行签名。简洁(Compact): 可以通过URL,POST参数或者在HTTP header发送,因为数据量小,传输速度也很快自包含(Sel...原创 2018-11-04 21:34:10 · 606 阅读 · 1 评论 -
【jwt学习笔记】--demo练习
第一步、导入maven坐标<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.0&原创 2018-11-11 21:38:13 · 772 阅读 · 1 评论 -
【java基础】-- 反射机制
java反射机制是在运行状态中,对于任意一个类(class文件),都能够知道这个类的所有属性和方法;对于任意一个对象都能够调用它的任意一个方法和属性。动态获取类中的信息,就是java反射可以理解为对类的解剖;提高了应用程序的扩展性。...原创 2019-05-12 21:35:30 · 294 阅读 · 3 评论 -
动态代理原理 (jdk动态代理+cglib动态代理)
场景:<br />协调调用者与被调用者之间的关系,降低耦合度,保护真实对象静态代理缺点:<br />一个代理对象只能代理一类对象<br />如果要代理多个对象则需要多个proxy改造静态对象就需要引入动态代理:<br />实现方式:原创 2019-06-16 21:27:05 · 722 阅读 · 1 评论 -
【Java并发】 -- JMM如何解决原子性、可见性、有序性问题
ava中提供了一系列和并发处理相关的关键字,比如volatile、Synchronized、final、juc等,这些就是Java内存模型封装了底层的实现后提供给开发人员使用的关键字,在开发多线程代码的时候,我们可以直接使用synchronized等关键词来控制并,使得我们不需要关心底层的编译器优化、缓存一致性的问题了,所以在Java内存模型中,除了定义了一套规范,还提供了开放的指令在底层进行封装后,提供给开发人员使用原创 2019-03-31 21:37:48 · 1665 阅读 · 1 评论 -
2019-2-17-- blob类型与text类型
blob与text异同比较:## 同- text与blog类型的数据存储或检索过程中都不存在大小写转换。- text与blob类型的数据索引必须制定索引前缀的长度- 不能有默认值原创 2019-02-17 20:48:17 · 555 阅读 · 2 评论 -
【Redis】 -- 线程模型
每个客户端连接到redis的时候都会产生一个socket连接,redis的一个线程会监听所有的客户端请求。在redis进程中有一个多路复用程序会监听所有的socket连接,只有有socket连接发过来请求,多路复用程序就会把这些请求依次压到一个内存队列中去,然后由一个文件事件分派器去把队列中的请求依次来处理。原创 2018-12-09 21:23:54 · 280 阅读 · 0 评论 -
Redis 分布式锁实现原理
前言C#的Winfrom窗体应用程序经常用到窗体的显示和关闭,但是关闭的方法有很多,我们在何种条件下采用何种方法关闭会有什么影响呢,今天来一个小小的总结。 方法列举常用到的窗体关闭方法有:this.Close(); Application.Exit(); Application.ExitThread(); System.Environment.Exit(0); 下面依依说明。 1. t原创 2017-10-07 10:22:22 · 1953 阅读 · 17 评论 -
JVM--内存分配策略
**线程安全问题**<br />多个线程同时创建对象 ,线程不安全<br />方案:<br />同步 加锁<br />本地线程分配缓冲<a name="y9FkS"></a># 1、基本原则:- 优先分配到Eden;- 大对象成员变量的默认值:基本数据类型: byte short int —&gt; 0 long —&gt; 0L float —&gt; 0.0F double —&gt; 0.0D char...原创 2018-07-01 22:59:12 · 338 阅读 · 11 评论