- 博客(44)
- 收藏
- 关注
原创 【Java并发 03】常用API及底层实现——Thread.start
文章目录知识储备native方法线程创建API底层实现JVM中的start0方法JavaThread对象及构造函数os:create_thread方法osthread方法JavaThread::prepare方法Thread::start方法总结知识储备上一章节中我们讨论了Thread的状态转换,以及Thread状态和OS状态之间的映射关系。本章节开始进行发散,来看看常用的Thread操作相关的API有哪些。本部分所有内容,JDK和JVM信息如下:java version “15.0.1” 202
2021-02-01 02:30:29
760
1
原创 【Java并发 02】Thread由浅入深
知识储备Java中的线程类Thread是从1.0开始便提供给使用者的工具,用于并行计算。线程特点Thread有如下特点:线程的创建主要通过Thread(Runnable target)进行创建每个线程具有优先级,高优先级的线程会比低优先级的线程;线程主要分为Daemon线程的非Daemon线程(也叫User线程)两类;线程的Daemon属性可以通过setDaemon和isDaemon两个接口修改和查询一旦线程开始运行(执行start),就不再允许修改Daemon标志位;一旦所
2021-01-30 03:02:49
671
2
原创 【Java并发 01】Java线程并发初窥
文章目录知识储备操作系统APIjava.lang.Thread提供的API线程池其他补充知识测试代码测试结果知识储备我们知道Java中线程的创建是使用Thread进行创建。在编写简单的测试代码或者业务代码的时候,我们可能也直接使用new Thread的方式进行线程任务的创建。但是这种方式真的能够满足业务诉求么?或者说这些写出来的代码是否还有继续调优的空间?这些问题在资源紧张或者高响应的架构上,可能就需要进行考量了。本文主要基于Java中的线程及其并发库进行初窥。操作系统API首先我们看,我们程
2021-01-19 03:27:12
486
原创 Lambda表达式与函数式接口(补充)
文章目录补充知识Lambda表达式只应该作为FunctionalInterface的实例坚持使用标准的函数接口补充知识在上一篇《Lambda表达式与函数接口》的内容中,我大致说了Lambda表达式的来源、应用和原理。这里补充一些项目应用中的思考和注意事项。Lambda表达式只应该作为FunctionalInterface的实例通过上一篇文章的分析再加上项目中实际运用,我们其实可以知道,只要一个interface中只有一个抽象方法的时候,这个接口就可以用Lambda表达式进行实现。但是,我还是不建议
2020-12-10 15:57:35
237
原创 UML类图绘制实例
UML类图绘制实例下面将使用如属官的借阅管理系统做一个图书馆管理系统的UML类图。参考自*Library Domain Model*最终的绘制结果大致如下:前期建模对于图书馆的借阅系统的建模,首先我们把所有需要定义的基础类定义出来。分别是Book(书籍)、Library(图书馆)、Patron(顾客)、Librarian(图书管理员)四个基础的对象。我们尝试将四个基础类进行关系连接,最后的到的关系图如下(注,就算没有图书,图书馆也不会消失,因此使用空心的关联关系:[外链图片转存失败,源站可能
2020-10-30 03:55:40
23499
1
原创 UML类图
目录文章目录目录UML类图继承(Inheritance, IS-A)泛化(Generalization)实现(Realization)实际例子举个例子依赖(Dependency, USE-A)举个例子关联(Association, HAS-A)单向关联示意图实际例子举个例子双向关联示意图聚合(Aggregate, OWNS-A)组成(Composition, IS-A-PART-OF)举个例子关联、组成和聚合的关联差异UML类图统一建模语言(英语:Unified Modeling Language,缩
2020-10-29 17:04:31
688
原创 Spring的Bean管理
本博客基于SpringSourceCodeTest仓库中【SpringDemo1.0】tag进行的编写。目录文章目录目录Spring的Bean管理基于扫描的方式装载beanXML格式解读XML内容解读基于定义的方式装载bean基于注解的方式装载beanSpring的Bean管理基于配置文件进行bean管理的方案是Spring初期推行的方式,在历史比较悠久的Spring项目中比较常见。基于扫描的方式装载bean一个比较典型的配置文件通常包含<context>标签, <cont.
2020-06-20 15:45:49
375
原创 一点点手写Spring
目录文章目录目录一点点手写Spring关于仓库和分支关于博客分布一点点手写Spring一直有一个小小的计划,做一个完整的系列,从使用Spring,到模拟Spring,到“抄袭”Spring,一点点理解Spring的内在和机制,同时加深自己对Java机制以及设计模式等内在的理解。因为Spring很大,模块很多,这里我计划只关注Spring的core包、bean包和context包,分别对应核心、bean的生命周期管理和Spring上下文的。首先从Spring的基础配置开始,我们现在最经常使用Spri
2020-06-20 15:42:28
290
原创 自定义注解并且进行扫描解析
文章目录注解背景源码解析总结注解背景首先我们要知道背景知识:每一个注解其实就是一个特殊的接口(带着@符号,其实是语法糖,会被编译器自动编译成继承自Annotation接口)。我们反编译一下class文件就能看出来。注解只是一个标记位,标记了某一个类,某一个字段或者某一个函数之后,我们就可以对被标记的属性进行我们期望的行为——比如运行时动态获取和修改被标记的属性,动态执行被标记的函数等等基于第二点,我们在定义了自己的注解之后,还要定义自己注解的解析类,这样我们才能真正让注解发挥起作用(只标记而不做
2020-06-05 22:52:22
1923
原创 Java的Integer类方法解读
highestOneBit获取一个int类型的二进制取整public static int highestOneBit(int i) { // HD, Figure 3-1 i |= (i >> 1); i |= (i >> 2); i |= (i >> 4); i |= (i >> 8); i |= (i >> 16); return i - (i >>> 1);}上述代码粗看会不理解实现原理,但是跟着推
2020-06-05 21:39:38
774
原创 Lambda表达式与函数式接口
目录文章目录目录Lambda表达式Java函数式接口简述Lambda表达式Java中Lambda表达式的好处Java中Lambda的实现原理Java1.8引入的新函数式接口Java编译器自动优化实现函数接口Java编译器对动态函数的优化Lambda表达式Java函数式接口都9012年了,这篇博文代码看看5000年前4012年发布的Java 8新引入的Lambda表达式到底是个什么鬼。简述Lambda表达式Lambda表达式并不是Java 8特有的特性,其设计初衷是用于一些特定代码中,已知固定入参和
2020-06-05 21:36:10
374
原创 Ubuntu下使用CodeBlocks进行多线程编程
因为项目开发需要, 我要在Ubuntu中使用多线程编程进行,以便能够在不影响主线程的情况下, 读写虚拟环境中的相关数据.强烈建议先阅读[C/C++ 多线程(程序猿面试重点)CodeBlocks-CB的pthreads使用]了解Ubuntu下使用多线程编程时的基本理论知识. 里面有很详细的解释说明初始代码这里我首先参考了部分网上博客, 写了如下Read&Write的demo....
2018-02-19 14:19:04
1293
转载 CSDN-markdown编辑器相关语法说明(2018-2-19)
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...
2018-02-19 13:23:21
389
原创 关于Apache HTTPD 2.2.15的部分漏洞修复建议
龙云尧个人博客,转载请注明出处。Apache httpd版本为2.2.15。修复Apache HTTP Server畸形Range和Range-Request选项处理远程拒绝服务漏洞,修复目录遍历漏洞,修复HTTP慢连接拒绝服务攻击漏洞。
2017-12-21 11:35:49
11851
原创 华为初面+综合面试(技术面)
华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前2题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的25%可能存在什么坑。笔试部分太久远,我就不怎么回忆了。直接将面试。面试如果说腾讯的面试是挥金如土(毕竟每个面试
2017-10-12 02:28:17
98790
6
原创 腾讯初试(技术面)
腾讯笔试因为比较久远,而且最后的代码题没有成功AC,所以已经记不太清楚。这里主要讲一下面试经历吧。(听说鹅厂的简历关和笔试关都很松,几乎不卡人。这大概是我认为已经失败的情况下依然受到面试通知的原因吧。)面试鹅厂的初试其实还是比较面向学生的,可能考虑到在校生没有接触太多工程项目,一般都是简单问一下项目经历,然后开始问智力题和简单编程题。面试之前我还是准备了挺久,看了不上网上关于腾讯面试的面经,看了很多
2017-10-11 01:45:58
2179
原创 Socket编程小结
本部分内容是对之前博客【 Ubuntu下进行Socket编程】中的补充说明,在这篇博客中,我将详细解释Socket编程的代码,分析编程的流程和思想。
2017-06-10 15:36:19
630
原创 OpenGL学习笔记(十)
本博客完成了OpenGL的GLUT窗口中的按键控制,以及对GLUT窗口使用网络消息进行控制。关键词:glut, socket编程, 回调函数, 空闲回调函数, glutPostRedisplay函数。
2017-05-30 16:49:22
1411
原创 Ubuntu下进行Socket编程
这是第一次进行网络编程,献给Ubuntu了。由于需要结合OpenGL搭建的虚拟环境进行实验,为了将虚拟环境中的实验参数传送至另一台PC机协同工作。我们选择使用网络编程进行数据通行。本次博客先运行两个demo体会一下利用C++进行Socket编程。实验进行我们在本次实验中将运行两个demo,第一个demo用来进行文件传输,第二个demo用来进行窗口对话。demo1本次demo采用TCP流,demo代码
2017-05-19 19:28:45
5712
原创 Ubuntu环境配置
起源一方面由于实验室开发的要求,另一方面由于自己想搞Linux服务器,于是在自己的电脑上装了双系统——Ubuntu 16.04 + Windows10。其中Win10是PC自身的系统,Ubuntu为后期装入,本篇博客将稍微记录一下我对整个系统的UI优化以及部分必要的软件配置。必要软件安装输入法首先需要安装的最最重要的当然是输入法了,这里我选用的是搜狗输入法,直接从官网下载安装包即可。(Ubuntu
2017-05-19 17:05:46
855
原创 OpenGL学习笔记(八)
前言本部分单独讲Lesson10的内容,本次讲述重点将不再是作者在代码中各种方法如何如何调用,比如如何实现旋转,如何绘制图像,如何实现透明,如何实现步进等等,这个在我前面7篇笔记中已经有详细的说明了,本篇笔记将不再重复,如果有什么疑问可以翻我之前的笔记或者上网查询。本次实验参变量不少,作者通过代码带我们真正的实现了一个3D世界,我们可以在这个3D世界里面自由的走动和观察。(也是我们玩的譬如《我的世界
2017-05-12 03:28:48
595
原创 OpenGL学习笔记(七)
我们在前六个部分已经尝试了nehe教程中1-8可得所有内容,接下来第七部分将实现一个简单的实验,这个实验将涵盖前面所有的内容,以作为一个前期总结。前期准备在实验之前,我们需要知道一个OpenGL中的基本概念。OpenGL中glEnable方法的使用。关于这个功能函数的使用以及参数设定,你可以点击【gl.glenable()介绍】以及【glEnable(GL_DEPTH_TEST) 有什么用?】进行查
2017-05-09 20:59:35
698
原创 OpenGL学习笔记(六)
混合我们在很多场合都过这样的经历,在设置某些色块的颜色的时候,我们不光要设置它的RGB值,还可能需要设置它的Alpha值。一般理解上,我们都认为这个Alpha值代表了当前色块的透明度。这样只是最外在的理解,其实图像的透明是一个颜色的混合过程,当有两种颜色混叠的时候,这个Alpha是用来控制两种颜色的混色程度的一种值。颜色的混合公式为(Rs*As + Rd (1 - As), Gs*As + Gd (
2017-05-08 13:54:19
490
原创 OpenGL学习笔记(五)
这次我们将尝试Lesson6和Lesson7的内容。这个部分我们将学习怎么给一个模型进行纹理映射(其实就是贴图)。环境搭建这次实验因为需要使用OpenGL的glaux.h库头使用位图对构建的图形进行纹理映射。所以我们需要进一步进行环境搭建。(注:环境搭建很麻烦,因为微软的VS环境很乱)如何布置这个库头可以参考【这篇博客】我使用的是方法4,测试能够正确include库头。在高版本的VS中,因为VS使用
2017-05-07 12:21:47
668
原创 OpenGL学习笔记(四)
图像旋转接下来我们将学习图像旋转。图像的旋转通过调用glRotatef(Angle,Xvector,Yvector,Zvector)实现。Angle表示旋转角度(注意是角度不是弧度),Xvector表示沿X轴旋转,Yvector表示沿着Y轴旋转,Zvector表示沿着Z轴旋转。注意旋转角度和RGB设置不一样,RGB的范围是0.0f-1.0f,而角度旋转的范围是0.0f-360.0f(其实可以超过36
2017-05-07 12:20:57
591
原创 OpenGL学习笔记(三)
第二课和第三课内容为三角形和矩形的颜色渲染内容,通过实例告诉我们如何给实现的样例进行上色。我们已经知道任何在OpenGL中,任何形状都将最终被分解成矩形和三角形两种形状,所以在这两课中我们将对三角形和矩形的构建和渲染进行学习。三角形和矩形构造构建三角形或者矩形的方法在DrawGLScene方法中实现。绘制图像之前我们需要先将屏幕缓存清理掉,即调用glClear和glLoadIdentity。这个时候
2017-05-03 15:14:09
568
原创 OpenGL学习笔记(二)
其实这个和nehe学习没太多关系,纯粹知识记录一下VS的注释和反注释的快捷键而已。注释: 先CTRL+K,然后CTRL+C 取消注释: 先CTRL+K,然后CTRL+U
2017-05-01 10:14:47
396
原创 OpenGL学习笔记(一)
nehe学习笔记因为实验需要,我要使用OpenGL搭建一个仿真驾驶环境。因为之前没有接触过OpenGL的相关知识,淦哥推荐通过NEHE来进行学习,之后会零零散散做一些笔记用来进行记录。学习的博客地址。创建新的C++因为实验需要,我需要使用C++进行整个项目的编写。实验之前,我们需要先知道怎么用VS搭建一个窗口程序,这里我参考了这篇博客。需要注意的是,在实验中,不推荐直接按照博客中使用L对字符串直接进
2017-05-01 10:08:09
950
原创 RFID实验二总结
没见过debug还这么麻烦的。。。。龙云尧个人博客,转载请注明出处。CSDN地址:http://blog.csdn.net/michael753951/article/details/70307683个人blog地址:http://yaoyl.cn/rfidshi-yan-er-zong-jie-2/在实验过程中,需要不断翻阅实验课PPT之《03 电子钱包的安全管理》,《实验3文档》,CSDN大佬
2017-04-21 02:57:45
4957
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人