Java学习之旅
文章平均质量分 92
记录自己学习Java过程总的一些总结,遇到的问题以及解决方法。
秃头哥编程
这个作者很懒,什么都没留下…
展开
-
一些JDK自带的性能分析利器
有时候碰到服务器CPU飙升或者程序卡死之类的问题,一般都不太好定位。这类bug一般都隐藏的比较深并且还可能是偶发性的,比较棘手。对于此类问题,一般我们都有固定的分析流程。借助于JDK自带的一些分析工具,比如jstack、jmap、jstat一类的命令行工具,除此之外,还有jconsole、mat、jvisualvm这些图形界面分析工具。这篇文章基于JDK8,操作系统是macOS 12.0.11、一些命令行分析工具这些命令行分析工具都在jdk/bin目录下解压jdk/lib/tool.jar可以得原创 2022-03-20 12:21:27 · 1751 阅读 · 0 评论 -
ReentrantLock源码学习
学习ReentrantLock之前,先了解一下可重入锁的概念。何为可重入锁,顾名思义,就是可重入的。真是听君一席话,胜听一席话啊。正经点,可重入锁就是能够支持同一个线程对资源的重复加锁。注意两个关键字:同一线程和重复。像synchronized关键字也实现了可重入。用synchronized修饰的方法,在进行递归调用时,执行线程在获取了锁之后仍然能够连续多次获得该锁,并不会出现阻塞的情况。再比如说,这篇文章要学习的ReentrantLock,也实现了可重入锁。并且ReentrantLock还支持公平原创 2021-11-26 17:03:24 · 605 阅读 · 0 评论 -
AQS源码学习
1、AQS介绍AQS全称AbstractQueuedSynchronizer,是一个同步器,用来构建锁或者其他同步组件的基础框架。内部主要使用一个volatile修饰的state变量和一个FIFO双向队列来实现的。 /** * Head of the wait queue, lazily initialized. Except for * initialization, it is modified only via method setHead. Note: * If原创 2021-11-22 22:32:43 · 653 阅读 · 0 评论 -
HTTPS介绍及加密的过程
http协议可能存在信息窃听或身份伪造等安全问题,使用https通信机制可以有效的防止这些问题。1、HTTP的缺点凡事皆有两面性,http作为应用广泛的通信协议,自然是十分优秀的,但其也存在不足之处:(1)通信使用明文,可能会被窃听。为了保证http传输的高效性,http本身不具备加密功能,所以无法对通信整体进行加密。为了解决这个问题,可以对通信或者内容进行加密。通信加密:可以通过SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security原创 2021-11-22 21:01:07 · 1291 阅读 · 0 评论 -
从一道高大上的面试题来学习位图算法BitMap
今天我偶然刷到了一篇文章,“华为二面:一个文件里面有5亿个数据,一行一个,没有重复的,进行排序”。不知道又是哪个无良媒体瞎起的标题,夺人眼球。不过说归说,这题听着就很高大上,5亿个数据排序,想想就很爽。常用的内排序算法有很多,比如我们熟悉的冒泡排序、插入排序、快速排序等等。所谓内排序,意思就是在内存里进行排序,不需要占用外存。对于内部排序算法,在数据量比较小的情况下,还是可以玩玩的,但像上面说的,5亿个数据,先不说时间要多少,来算算需要多少空间存储这些数据 5 * 10 ^ 8 * 32 = (1.6原创 2021-06-10 22:36:04 · 511 阅读 · 1 评论 -
十大排序算法总结
0、开场排序算法分为外部排序和内部排序。内部排序是指数据记录在内存中进行排序,而外部排序是排序的数据量很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序。而对于内部排序,又可以分为稳定排序和不稳定排序。所谓稳定排序是指排序后2个相等值的顺序和排序前的顺序一样,不稳定排序则相反(可能顺序不一样,不是必然的)。稳定的排序算法有:冒泡排序、插入排序、归并排序、计数排序、桶排序、基数排原创 2021-06-06 23:38:35 · 4593 阅读 · 2 评论 -
JSTL核心标签超详细
1.JSTL介绍JSTL(JavaServer Pages Standard Tag Library,JSP标准标签库)是一个JSP标签集合,它封装了JSP应用的通用核心功能。JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。2.JSTL的使用及分类要使用JSTL,首先...原创 2018-05-04 13:24:57 · 23531 阅读 · 0 评论 -
Mybatis入门&配置文件&映射文件
这几天很忙,一直断断续续的在学习Mybatis,这篇文章先总结一下Mybatis的配置文件和映射文件。1.配置环境首先得现在相应的jar包,点击这里下载,下载好后,进行解压,建议把源码包一起下载,因为里面不止有源码,还有配置文件和映射文件的模板,到时我们可以直接拷贝进项目。 解压出来后,目录如下 把jar包导入相应的目录结构下就可以进行开发了。2.配置文件...原创 2018-05-09 10:09:58 · 1215 阅读 · 0 评论 -
Java使用Kaptcha生成验证码
首先下载好Kaptcha的jar包http://www.everycoding.com/maven2/com/github/penggle/kaptcha.html下载好后我们放到WEB-INF的lib文件夹下就可以了。1.第一个验证码我们首先先来简单的生成一个验证码。首先写好index.jsp<script type="text/javascript">...原创 2018-04-23 21:15:06 · 2824 阅读 · 0 评论 -
EL表达式总结
今天学习mybatis的时候,发现要用到EL表达式和JSTL,所以今天花了半天时间去学习EL表达式和JSTL,现在来总结一下,方便以后查阅。写在前面:注意 <%@ page isELIgnored=”true” %> 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言。1.EL表达式是什么EL(Expression Lan...原创 2018-05-04 12:55:12 · 437 阅读 · 0 评论 -
Java之注解(Annotation)浅析
小弟还在新手阶段,所以只能起个“浅析”的名字,不求能带给大家多少进步,最大的作用就是自己总结一下,方便以后回顾,如果有人能从这篇文章中得到一点启示,那再好不过了。先推荐一篇关于注解的文章,讲的很详细https://blog.csdn.net/briblue/article/details/738240581.注解的概念讲什么之前不都得先讲概念吗,总得知道它是个什么东西。依据文档...原创 2018-04-26 20:15:18 · 429 阅读 · 0 评论 -
Java Web项目运行一直提示ClassNotFoundException
初学JSP+Servlet,今天在写一个小项目的时候,启动tomcat后,在网页输入地址一直显示ClassNotFoundException 而控制台一直输出java.sql.SQLException: No suitable driver found for jdbc:mysql://127.0.0.1:3306/jdbc我看了看我之前写的项目,也没有出现过这种情况啊,况且我的jar包...原创 2018-04-19 13:59:09 · 2067 阅读 · 0 评论 -
Java IO之编码介绍
原文链接:http://www.codeliu.com/java/259.html在Java中如何进行文件的读写十分重要,Java IO流是必备的知识点。本文先不讲Java读写的API,先讲一讲关于编码的那些事。废话不多说,代码是最好的表达方式public class EncodeDemo { public static void main(String[] args) ...原创 2018-03-14 11:08:39 · 447 阅读 · 0 评论 -
Java IO整理总结之字节流
原文链接http://www.codeliu.com/java/261.html 写文章之前先上一张图吧,应该是迄今为止最全的IO流图,图太大了,可能看着有点费劲,里面有很多类我从来没用过,以后可能也不会用上。本人有些许强迫症,为了知识的全面性,就全部画上去了。 摘要:Java流分为字节流和字符流,字符流处理的是2个字节的单元比如字符串、字符数组;而字节流处理的是一个字节的单元比如字节...原创 2018-03-15 12:49:51 · 829 阅读 · 1 评论 -
Java IO整理总结之字符流
原文链接http://www.codeliu.com/java/266.html 上一篇文章中讲了Java IO的字节流,这次同样的,先把整张图搬上来 字符流的类相对字节流来说,没有这么多,但同样重要。** 字符流** 一.Reader 1.Reader 构造方法Reader() 创建一个新的字符流 reader,其重要部分将同步其自身的 reader。...原创 2018-03-15 15:44:59 · 378 阅读 · 0 评论 -
Java之XML文件读取
XML简介可扩展标记语言,简称XML(Extensible Markup Language),是一种标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用像XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从标准通用标记语言(SGML)中简化修改出来的。它主要用...原创 2018-03-26 20:13:41 · 512 阅读 · 0 评论 -
Java之网络编程初步探索
最近一直在啃Java,学下来一天,代码也敲了不少,但晚上回寝室的时候总感觉头晕,仔细想想,脑子一团浆糊,还是得整理一下,不然真的学过了就忘,虽然本人十分懒,但还是得强迫一下自己才能进步。 整个文章分为以下几个部分: 1.一些基本协议的介绍 2.InetAddress类介绍 3.URL网络编程 4.TCP网络编程 5.总结一些基本协议的介绍1.TCP协议TCP(Trans...原创 2018-04-11 09:32:50 · 309 阅读 · 0 评论 -
Java之垃圾收集器
今天看了Java的垃圾收集器,感觉挺好的,平时光编程,只听过Java有自动回收的机制,不过从来没有验证研究过,今天刚好记录一下学习情况,以便以后查看复习。还没看《深入理解Java虚拟机》,所以垃圾收集器的一些算法本文就不做深入探讨,等我过几天看了此书后再来更新了。本文就谈谈一些基本的东西。1. Java中如何定义一个“垃圾” 2. 什么是“垃圾”收集器 3. 如何收集“垃圾” ...原创 2018-04-11 09:43:03 · 350 阅读 · 0 评论 -
Java之JDBC简单总结
本文主要分以下几个部分:1. JDBC简介 2. JDBC中常用的类和接口 3. 如何实现数据库的连接 4. 元数据 5. 批处理JDBC简介JDBC(Java DataBase Connectivity)Java数据库连接,由Java编写的类和接口组成,同时也为开发人员提供了一组用于访问数据库的API,并支持SQL语句。利用JDBC可以将Java连接到不同的数据库比如...原创 2018-04-11 09:51:25 · 413 阅读 · 0 评论 -
JSP使用cookie实现记住账号密码的功能
所谓自动登录,就是下次打开的时候不用再次输入账号密码,一定程度上方便了用户,但也有它的缺点,就是可能泄露用户信息。HTTP的无状态性HTTP的无状态性,是指当客户端发请求给服务器的时候,服务器会响应客户端的请求,但当客户端再次发请求给服务器时,服务器并不知道这就是刚刚那个客户端。简单的说,就是服务器没有记忆,不会记住客户端。那这样我们要让服务器记住一些事情怎么办呢?比如要记住客户端输入...原创 2018-04-14 10:42:21 · 2184 阅读 · 0 评论 -
JSP超链接传递参数的一个小问题!!!
只是一个小问题,但却是致命的!被坑了好多次了,记录一下,给自己提个醒。JSP的URL传参有好多种方式,但目前只发现这一种方式有问题,就是这种方式<a href = "xxx.jsp?id=xx"></a>是什么问题呢,就是id后面的=左右两边都不能有空格,不然参数传递不了,获取的是null!!!!被坑了好多次了,根据阿里巴巴的代码规范手册,=左右两边要有...原创 2018-04-14 12:53:18 · 953 阅读 · 0 评论 -
Java编程的一些小技巧-----基础语法篇(1)
今天在github上面看到了一个很好的项目,是在Stack Overflow上面点赞数top100的关于Java的回答,看了一些,感觉十分实用,对于新手来说,能加深对Java的认识,同时也能让代码更简洁。所以想写下这系列的博文,每个回答我都会亲自用代码检验一下,下面一起来看看这些小技巧吧,绝不会让你失望。1.Java +=操作符实质看了这个是不是觉得这有啥难的,不就是一个加法吗?但还真不是...原创 2018-04-16 18:52:05 · 420 阅读 · 0 评论 -
Java编程的一些小技巧-----基础语法篇(2)
上了一天的课,等下18:30还得上课,趁这个时间先更新一波。6.如何从一个多层嵌套循环中直接跳出?for (Type type : types) { for (Type t : types2) { if (some condition) { // Do something and break... ...原创 2018-04-17 21:24:17 · 370 阅读 · 0 评论 -
Java编程的一些小技巧-----基础语法篇(3)
继续昨天的话题,越看到后面越吃力啊,感觉都理解一点,但却只是停留在表面,唉,虽然每篇文章只更新五个问题,但却要花我几个小时。坚持吧,坚持把每个问题都深入一点,自己也会收获更多。11.HashMap和Hashtable的区别?哪一个对于多线程应用程序更好?Hashtable是同步的,加了synchronized锁,而HashMap不是。没有加synchronized锁的对象,性能通...原创 2018-04-18 21:32:59 · 348 阅读 · 0 评论 -
Java编程的一些小技巧-----基础语法篇(4)
16.wait()和sleep()的区别?问题:在线程里 wait() 和 sleep() 的区别? 我的理解是执行 wait() 语句后,该线程仍是运行态,并且会占用CPU,但是执行 sleep()后,该线程则不会占用CPU,对吗? 为什么需要 sleep() 和 wait() 两条语句:他们底层是如何实现的?回答:线程 在wait 后,可以被另一个拥有相同 synchron...原创 2018-04-20 08:34:23 · 357 阅读 · 0 评论 -
Java Web之监听器总结
1.监听器的概念监听器(Listener),是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。2.监听器的用途统计在线用户系统启动时加载初始化信息统计网站访问量跟spring结合3.创建一个监听器的步骤创建一个实现监听器接口的类配置web.xml或使用注解监听器分三类共八种,...原创 2018-04-22 18:13:05 · 447 阅读 · 0 评论 -
Java Web之过滤器总结
1.过滤器的概念过滤器是一个服务器端的组件,它可以拦截客户端的请求和响应信息,并对这些信息进行过滤。Servlet API中提供了一个Filter接口,如果编写额类实现了这个接口,则称这个类为过滤器。Filter接口源码如下:package javax.servlet;import java.io.IOException;public interface Filter { ...原创 2018-04-21 09:23:13 · 3655 阅读 · 0 评论