Java并发编程之CyclicBarrier原理及源码分析

最近在学习Java多线程方面的知识,从最基础的创建线程到使用 synchronized 进行线程同步,前前后后也花了近半个月的时间。不过,使用这种手动添加同步锁的方式比较麻烦,而且会降低代码的可读性。经过老师的指导,打算使用java中的线程同步工具 JUC 包来实现程序的并发执行,下面是我对其中一个工具 CyclicBarrier 的学习记录。

java.util.concurrent是一个极其优秀的、免费的并发实用程序包,它包括并发应用程序的锁、互斥、队列、线程池、轻量级任务、有效的并发集合、原子的算术操作和其他基本构件。我们一般称这个包为 J.U.C

阅读全文

Hash长度扩展攻击———对ctf中该类问题的分析

最近的比赛中经常遇到md5长度扩展攻击的题目,而且这也是目前在ctf中比较常见的攻击方式,以前在实验吧刷题时也有一道类似的题目,但当时并没有弄懂md5的内部填充结构,这次正好借此机会结合中科大ctf好好整理一下。

Ps:直到现在我才明白为什么好多大佬的安全网站在保存密码时要前后都加salt。。。orz

阅读全文

SSM框架整合笔记

本项目适合有一定JavaWeb基础的人学习


在使用jsp+servlet开发过一个信息系统后,自己也想学习一下当今比较流行的java框架,而且最近也要完成一个基于B/S架构的项目,于是我选择了spring-MVC+spring+Mybatis(SSM)框架。之前学习spring花费了我很长时间,后来在整合SSM框架上有踩了不少的坑,有时感觉开发项目之前的搭建和配置过程才是最麻烦的,不过还好在查阅很多资料后终于完成了。为了怕自己忘记如何搭建SSM框架,特意写了一篇整合笔记。

阅读全文

JavaWeb框架学习

1. Struts1与strus2的区别

在struts1中,每种action对象只有一个,每次访问一个action都不会新建action,而在struts中,每次访问一
个action时,都会重新创建一个新的action。很好地避免了线程同步的问题。

2. struts路径问题

由于struts中的路径是根据action的路径而不是jsp路径决定的,所以在所有路径跳转的过程中都尽量统一使用绝对路径。

  • 方法一: 在head标签后面加
    href="<%=bathpath%>"link
    1
    2
    3
    4
    5
    - 方法二: 在每个跳转href页面前加 ``<%=bathPath%> ``
    ### 3. jsp页面跳转路径问题
    - 不以/开始的相对路径,找资源以当前资源的路径为基准,经常容易出问题
    - 以/开始的相对路径,找资源,以服务器的路径为标准(http://localhost:3306),需要加项目名才能找到。最好在页面前加上 ``` <% pageContext.setAttribute("APP_PATH",request.getContextPath()); %> ```引入路径时,可以仿照这种路径写 ``` src="${APP_PATH}/static/js/jquery"

Android天气软件'Skyline'设计说明

从开始学习Android到现在,差不多也有两个多月了,由于平时学校课比较多,所以也只能在课余时间和周末学习些自己的东西。虽然以后不打算从事安卓开发,也算是一时兴起,加上今年要做一个关于安卓的项目,于是就开始了Android的学习。

我学Android用的书是郭霖的《第一行代码 第二版》,书里讲的很细致,而且把每个操作都说明的很详细,基本不会出现按照指示做然后出错的情况,忙了半天却依然出错这钟痛苦相信很多开始接触安卓的人都深有体会。我在学习这本书的过程中,可以自豪的说,我把这本书的所有讲解看了不止一遍,所有书上出现的代码都至少敲过一遍,比较喜欢Material design部分。

该App是基于书上的应用程序CoolWeather的修改版,说是修改,其实相当于重写了整个App,只是界面布局仿照了以往的格式。

阅读全文


Powered by Hexo and Hexo-theme-hiker

Copyright © 2016 - 2019 Dreaouth All Rights Reserved.

访客数 : | 访问量 :