自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿发你好

学的技术太多了,输送一点给大家^^

  • 博客(156)
  • 资源 (11)
  • 收藏
  • 关注

原创 Java全系列教程:『Java学习指南』

Java学习全系列教程:http://afanihao.cn/java作者:阿发你好Java学习指南系列教程,从入门语法到行业级技术,循序渐近式的全方位教程。内容包含入门语法和高级语法,覆盖Java在业界的3个应用领域(网站开发、安卓APP开发、桌面GUI开发)。同时包含专项技术的培训教程,如网络编程基础、数据库开发,FreeMarker, Spring, MyBatis等。一、入门与...

2019-10-16 16:33:52 2873

原创 面试指南,求职必看 ! 大学毕业生找工作必备指南!

* 心态平和 你只是去面试当一个小程序员,又不是面试当CEO,有什么好激动的。即便是面试当CEO,也不是这世上的一个普通存在。地球上的CEO该有几十万吧,多你一个不多,少你一个不少。* 面试是有成功概率的 你是小施瓦辛格,但对方喜欢蔡徐坤; 你是小林志玲,但对方有可能是gay。并不是你优秀对方就会喜欢你。* 前20次面试肯定有一家是成的 群主没有...

2019-08-12 10:32:57 2071 1

原创 191213P1 StringBuffer和String的区别是什么

StringBuffer和String的区别是什么作者:邵发官网:http://afanihao.cn/javaStringBuffer是一个用于构造字符串的工具类,是面试里常考的一个问题。1字符串的拼接还得先从String说起。在Java里,构造一个字符串可以直接用String的拼接功能,简单而直观。比如,String s1 = "阿发";s1 += "你好...

2019-12-13 11:38:31 469

原创 191210P4 Java富文本编辑之图片链接本地化

Java富文本编辑之图片链接本地化作者:邵发官网:http://afanihao.cn/java本文介绍在图文混编项目中(博客、新闻等),如何将富文本中的图片外链转为本地链接的问题。本文是Java学习指南系列教程的官方配套文档,项目源码在本文末尾说明。所谓富文本Rich Text,就是以HTML形式表示的文本。在前端通常由富文本编辑器得到,比如UEditor,KindEditor,w...

2019-12-11 10:38:20 940

原创 191208_01 Java后台发送短信验证码

Java后台发送短信验证码作者:邵发官网:http://afanihao.cn/java本文介绍如何在Java项目添加短信支持,并演示以手机号进入用户注册的流程。在演示中,用户输入自己手机号进行注册,网站后台发送一个验证码到用户的手机进行验证。本文是Java学习指南系列教程的官方配套文档,配套示例代码或者视频讲解。1.短信支持短信业务由电信运营商提供,可以直接与运营商商...

2019-12-08 18:15:10 823

原创 191206_01 Java中的句柄与资源泄露

Java中的句柄与资源泄露作者:邵发官网:http://afanihao.cn/java本文内容介绍Java中的句柄与资源泄露问题,是Java网站开发中必须清楚掌握的基本概念。句柄包括两类:文件句柄和网络句柄。本文是Java学习指南系列教程的官方配套文档,配套示例代码或者视频讲解。在项目开发中,句柄的概念极为重要。如果不了解句柄,就可能发生以下错误:文件被占用,无法删除或移动 ...

2019-12-06 12:00:30 1204

原创 191127_01 JS之Canvas绘制教程

JS之Canvas绘制教程作者:邵发官网:http://afanihao.cn/java本文是Java学习指南系列教程的官方配套文档。内容介绍在网页前端使用Canvas进行自定义绘制的技术。前端的图表展示、验证码、图片剪裁处理等场合会用到这项技术。1.添加<canvas><canvas>是一种特殊的网页控件,在它上面可以实现自定义的图形绘制。...

2019-11-27 16:44:24 374

原创 191124_01 基于位置验证的图形验证码

基于位置验证的图形验证码作者:邵发官网:http://afanihao.cn/java本文是Java学习指南系列教程的官方配套文档。内容介绍一种基于位置的验证码的实现,附演示说明和项目源码。1.基于位置的图形验证码下面演示一种基于位置的验证码,示意图如下。(项目演示http://127.0.0.1:8080/demo/test )和所有的验证码一样,此验...

2019-11-26 18:14:38 410

原创 191122_02 前后台联合验证的验证码

前后台联合验证的验证码作者:邵发官网:http://afanihao.cn/java本文是Java学习指南系列教程的官方配套文档。内容介绍另一种安全的验证码技术,即由后台负责生成和验证,使整个验证流程不可轻易攻击。本文附带项目源码及相关JAR包。1.验证码的作用在上一篇文章已经说过,验证码是用于“防刷”的,防止用户或机器人的高频率的网页刷新。举一个例子,假设网站提供一个订单...

2019-11-22 15:04:40 875 1

原创 191122_01 纯前端JS实现的文字验证码

纯前端JS实现的文字验证码作者:邵发官网:http://afanihao.cn/java本文是Java学习指南系列教程的官方配套文档。内容介绍一种基于JavaScript绘制的纯前端实现的验证码技术。本文附带项目源码及相关JAR包。1.验证码的作用简单地说,验证码是用于“防刷”的,防止用户或机器人的高频率的网页刷新。举一个例子,假设网站提供一个订单查询功能,示意图如下。...

2019-11-22 11:54:39 917

原创 191120_02 Java常用加密校验转换算法汇总

Java常用加密校验转换算法汇总作者:邵发官网:http://afanihao.cn/java本文是Java学习指南系列教程的官方配套文档。内容介绍Java里的常用算法的使用,包含转换Hex/Base64等数据转换算法,CRC32/MD5/HMAC-SHA1数据签名和校验算法,DES/AES等对称加密算法。由于篇幅的限制,本文只对各种算法的使用给出代码示例。如果对原...

2019-11-21 10:16:42 355

原创 191120_01 Java网站后台发送邮件验证码

Java网站后台发送邮件验证码作者:邵发官网:http://afanihao.cn/java本文是Java学习指南系列教程的官方配套文档。内容介绍如何的Java网站后实现邮件的发送。在网站项目中,给用户发送邮件是常见的操作,比如在用户注册的时候会发送一个验证码到用户的邮箱。本文附带演示所用的项目源码。1.网站发送邮件演示下面演示一个发送邮件验证码的典型流程。点此观看演示。打...

2019-11-20 10:11:42 811

原创 191119_01 网站集成QQ第三方登录

网站集成QQ第三方授权登录作者:邵发官网:http://afanihao.cn/java本文是Java学习指南系列教程的官方配套文档。内容介绍如何在网站中集成QQ的第三方授权登录功能,演示项目基于Java8 + Tomcat8 + Spring5的开发环境。第三方认证登录即OAuth(Open Authorization开放认证),常见的有QQ登录、微博登录等都属于第三方认证。本...

2019-11-19 11:54:25 381

原创 191118_02 云主机上Tomcat网站的部署

云主机上Tomcat网站的部署作者:邵发官网:http://afanihao.cn/java本文是Java学习指南系列教程的配套文档。本文介绍如何在云主机上快速部署一个网站,基于Windows系统,服务器选用Tomcat8.5版本。1.准备云主机首先,得准备一台主机作为服务器,还要有一个公网的IP地址,才能够作为一个真正的网站被全国乃至全世界用户访问到。对于个...

2019-11-18 16:52:50 307

原创 191111_01 Thymeleaf 3.0 快速使用说明及源码

Thymeleaf 3.0 快速使用说明作者:邵发官网:http://afanihao.cn/java本文是Java学习指南系列教程的官方配套文档。Thymeleaf 3.0 是Spring5的首选模板引擎,可用于快速的实现MVC页面的展现。本文介绍Thymeleaf 3.0的常见用法,并配以项目示例。项目源码基于EclipseEE2019 + JDK8 + Tomcat8环境。本文档...

2019-11-11 22:11:20 432 1

原创 interface里可以定义属性吗?

( Java面试题 | Java学习指南 )本质上不可以。如果强行在interface里加一个属性,则该属性自动变成public static。显然,这不算是个属性。例如,public interface Listener{ int number;}虽然number没加static,但是编译会自动把它按public static处理。为什么这样呢?因为接口...

2019-08-18 21:54:56 8046 2

原创 一个文本文件,如何知道它是GBK编码、还是UTF-8编码?BOM是什么东西?

( Java面试题 | Java学习指南 )我们平时看到的文本文件,虽然都是文本,但有的是GBK编码,有的UTF-8编码。那么,对于一个阅读器,它在读取一个文本文件时如何知道它是GBK还是UTF-8呢?奥秘在于文件头部的几个字节。规定如下:当以UTF16或UTF-8编码存储时,头部需要添加几个字节作为标识。称为BOMUTF8:头部3个字节EF BB BFUTF16...

2019-08-18 21:50:19 6589

原创 WebRoot下哪些文件可以被客户端访问?哪些不可以访问?

( Java面试题 | Java学习指南 )默认的,tomcat允许浏览器访问webroot下的所有文件,但除了WEB-INF目录之外。为什么呢?因为约定WEB-INF目录用于存储程序和配置,如lib,classes,xml配置。显然,这些东西不应该让客户端下载。但是,我们也可以通过servlet和filter技术,来改变这个默认行为。例如,我们可以专门servlet,让客...

2019-08-18 21:48:15 643

原创 如何理解开发效率和运行效率,哪个更重要?

效率分两种语义:开发效率,运行效率。开发效率,是指用最短的把代码写好,功能实现。运行效率,是指程序的性能,运行的越快,所耗费的CPU越好,内存越少越好。简单的说,开发效率是节省人的时间,而运行效率是节省机器的时间。那么,是人的时间重要、还是机器的时间更重要呢?结论似乎显而意见。从老板角度看 : 如果要提高运行效率,那么就得雇佣薪资更高的程序员,花更多的开发时间,,,...

2019-08-18 16:45:58 2541

原创 浏览器里输入 http://afanihao.cn/abc.jpg ,可以打开显示一张图片。那么是否意味着服务器后台里有一个名为abc.jpg的图片文件?

不一定。后台可能存在这个文件,也可能是一个伪静态实现。关于伪静态技术,参考『网站中级篇』。比如,创建一个Servlet,映射路径设置为"/abc.jpg",返回一个图片的内容即可。Content-Type设置为"image/jpeg"。在客户端浏览器看来,它得到的是一个图片的内容。它语法区分这个图片是来自一个静态文件,还是来自一个Servlet的输出。...

2019-08-18 16:43:50 2008

原创 一个中文字符对应几个字节?

这个和字符编码有关。所谓字符编码,就是规定了如何将字符串转成byte[]。同一个汉字,在不同的字符编码下,得到的结果也不同。例如,"中国"GBK编码:D6 D0 B9 FAUTF-8编码:E4 B8 AD E5 9B BD以GBK编码时,一个汉字得到2个字节。以UTF-8编码时,一个汉字得到2~3个字节。...

2019-08-18 16:42:23 7823

原创 网站开发中,什么是过滤器,什么是拦截器,有什么区别?

Java Web有3种自带机制,Servlet,Filter,Listener。其中,Filter称为过滤器,也可翻译为拦截器。它们是同一个东西。

2019-08-18 16:41:08 1001

原创 网站后台如何判断客户端是来自手机、还是来自电脑?

( Java面试题 | Java学习指南 )在浏览器打开一个网址时,此时浏览器为客户端,你的网站后台tomcat为服务器,客户端向服务器传了一个HTTP请求。在HTTP请求的头部,有一个字段 User-Agent,用于表示客户端浏览器的类型、及操作系统的类型。以下是一 以个真实的HTTP请求抓包(客户端:小米浏览器)GET /qianwen/ HTTP/1.1Host:1...

2019-08-18 16:39:50 2737

原创 什么叫系统后门?后门与漏洞有什么区别?

( Java面试题 | Java学习指南 )什么叫系统后门?后门与漏洞有什么区别?近年爆发的勒索病毒案例中,被黑客利用的是Windows的后门、还是漏洞?后门,是一个系统的作者故意留下的、只有作者自己知道的机关。比如,一个洞府看起来是铜墙铁壁,但是若在它前面前念一声"芝麻开门!"便会在墙壁上凭空打开一个门。这便是一个后门,这是系统的作者故意留下的机关。再比如,打开手机拨号键...

2019-08-16 19:52:51 11797

原创 HTTP GET与POST的区别什么? HTTP GET可以用来执行增删改操作吗?

HTTP GET和 POST的区别,很容易,也很明显,只要你用Wireshark抓包看过,就能很直观地看到区别。GET: HTTP头部第一行为GET,参数放在URL里上传,通常没有HTTP内容体。POST: HTTP头部第一行为POST字样,参数放在HTTP内容区。这个区别,在 《网站入门篇》里有详细演示,相信学过的同学都是知道的。那么,下面的问题是,可以在响应HTTP GE...

2019-08-16 19:29:14 2708

原创 什么叫反编译?你把java程序(jar)交给别人,会被人看到源码吗?

( Java面试题 | Java学习指南 )※编译 Compile将一个 *.java文件编译成 *.class文件的过程,称为编译。比如,HelloWorld.java被编译后得到 HelloWorld.class※反编译 Decompile在.class文件里包含了完全的信息,包含类名、方法、属性、注解,除了注释文字之外的所有信息。所以从.class文件可...

2019-08-16 19:27:36 6887 1

原创 怎样理解优秀代码的三个标准:可读性,可重用性,可扩展性?

※可读性,Readable指一份代码干净清爽,容易读懂。简单地讲,能让别人1秒读懂的,就别让人花2秒!多加点注释就好了吗?错错错!代码如果写得好,一句注释都可以没有。因为代码即“文章”,它自身就可以表示意思和逻辑。-怎么样增加可读性? 合理的架构设计   名字起得好  多留点空白,不要挤在一起  一行代码不要嵌套多层函数  不是代码越简洁越好,而是越容易懂越好!代码短...

2019-08-16 17:56:43 3240

原创 Thread 与 Runnable 有什么区别和联系?

( Java面试题 / Java学习指南 )其实 Thread和 Runable没太大联系。※ RunnableRunnable则是一个接口,一个通用的接口。什么叫通用接口?就是在你要自定义一个接口时,如果想不到合适的名字,则可以直接用Runnable。比如,在Swing高级篇里,我们经常要自定义接口。比如,定义一个public inter...

2019-08-16 17:54:46 818

原创 在网盘上传大文件,一个G的文件有可能几秒中就上传完了。称为极速秒传,请问它是怎么做到的?

( Java面试题 )这个涉及到 MD5码,具体原理参考《项目应用篇》之"数据的校验"章节。每个文件都要以生成一个MD5码,用公式表示为: output = MD5 ( input File )其中,输入input为文件数据,输出MD5码是一个16字节的数组 byte[16]需要注意以下两条结论:(1)无论输入数据有多大,是10K还是10G,输出都是16字节...

2019-08-16 17:02:21 3227 1

原创 在Java里,equals() 与 == 有什么区别?

此问题在 《快速入门篇》11.6节里已经详细分析过。※==用于判断两个对象是否相同 (同一个对象)比如,Student a = new Student( ... )Student b = a;则 a, b其实指向同一个对象。if ( a == b ){}这个是成立的。※equals用于判断两个对象是否相等(内容相等)举个例子:你...

2019-08-16 17:00:54 183

原创 两台IP地址相同的主机,能够互相网络通讯吗?

(Java面试题)在网络通讯时,IP地址表示一个主机。你和隔壁小王都在家里用QQ上网聊天,你发现你的IP是192.168.1.101,小明的IP也是192.168.1.101。请问:为什么两台IP地址相同的主机可以通讯?实际上,全国有几百万台家庭电脑的IP都是192.168.1.XXX,但是,却不妨碍大家互相QQ聊天。比如,你的电脑A192.168.1.101你家路由器...

2019-08-16 15:37:25 6074

原创 在 Java 里,怎么复制一个对象?

(Java面试题)其实,Java里一般没有必要复制对象。一般都是多个引用,指向同一个对象。注意不要套用C/C++的思想。比如,Rectangle a = new Rectangle ( 0, 0, 100, 40);Rectangle b = a;这里并没有复制对象,b和a指向的是同一个对象。那么,如果想根据a复制一个新的对象,该怎么做呢?(注:这里的 Recta...

2019-08-16 15:33:56 552

原创 Java怎么把一张图片直接存到数据库里?

( Java面试题 )通常,应该把文件放在文件系统(硬盘)上,在数据库里只存储图片文件的路径 。但是,如果想 图文文件直接存在数据库里,怎么实现呢?由于图片数据较大,在MySQL中直接存储的话,应该选则 BLOB 类型的字段。(以下假设图片的大小为 100K以下 ,太大的不适合 )1将字段类型设为mediumtext此字段可用于存储 <16MB 的文本...

2019-08-16 10:19:08 4453

原创 在 Java Web 里,为什么写 Servlet , Filter 的时候不需要 main() 方法,却可以运行?

在 Java Web开发时看不到 main() ,因为 Tomcat程序本身就是一个 Java程序, main()方法在 Tomcat程序里。实际上,Tomcat本身就是一个框架,它会加载APP,读取 WEB-INF\web.xml下的配置,从中读取相应的Filter和 Servlet。所以,当我们写好 Filter, Servlet后,只需要把 web.xml里配置好。...

2019-08-15 11:30:33 993

原创 java里的对象有几种创建方式?所有的对象都得new出来吗?

1 new用new是最常见的方式,new可以创建一个对象如Student s1 = new Student()注意:Student s2 = s1;这里没有new,所以并没有创建新的对象,s2, s1指向了同一对象2字面常量对象如String s = "afanihao";则s指向了一个常量对象,这里并没有new,但是右侧有一个对象再比如...

2019-08-15 11:25:46 1646

原创 面试的时候,感觉可以要10000,但是只敢要8000。怎么办?

从公司的角度看,10000和8000没有任何差别。从你的面试官角度看。你的面试官就是将来的直接领导。那么,他省下2000块会进入他自己的腰包吗?不会。他想去招你,却因为少给了2000块让你闷闷不乐。你如果不去了或者过早离职了,他岂不是还得花力气再招?显然,这不符合他的利益,他没有理由少给你2000。除非他傻,他不会给自己找不必要的麻烦。所以,在整个公司范围内,其实没有人关心你这是8000还...

2019-08-13 15:51:45 717

原创 面试开始为什么要你来一段自我介绍?

一般来说,当你去参加一个面试,开始时面试官会让你来一段自我介绍。于是你感到奇怪,你不是发过简历了吗,为什么还要自我介绍?实际是这样的:1通常面试官并没有细看过你的简历,至少他不记得你这个人。在你陈述的几分钟内,他正好看看你的简历。2面试官也许刚参加一个会议,打了一个电话,。。。所以他需要一段时间缓冲一下,把思绪调整过来3面试官会通过你的自我陈述(或通过你的简历)来开启第一...

2019-08-13 15:50:13 661

原创 面试的时候好紧张,是好事还是坏事?

有些许紧张,是好事。因为紧张的你将分泌更多的肾上腺素,这就像兴奋剂一样,会让你大脑反应加快,有助于超水平发挥。(注意:肾上腺不是荷尔蒙。。)但过分紧张,说话都哆嗦,就是坏事。怎么缓解呢?你只要看看面试指南,知道面试找工作是概率事件,就能够让你舒缓。因为只要你平时学的还可以,经过多次面试后,按概率你肯定能拿到Offer。这次可能不中,那就下次。无论你这次准备多充分,都...

2019-08-13 15:49:07 812

原创 为什么说人生的第一份职业就是最后一份职业?转行很难吗?

很多人会认为,第一份工作没关系,选错了就转行就好了,是吗?可以,对于强者而言是可行的,但大部分人没有这么强。以下几点原因让你难以转行:1 当你换第二份工作时,用人单位会参考你的前面的工作经验比如,人家招的是研发人员,但是一看你的简历说以前干的是测试、运维、销售,接下来会发生什么事情?你应该猜得到:你的简历直接被刷。2经验优势你已经有了几年运维的工作经验,已经获取了部分经验...

2019-08-13 15:47:50 550

原创 学历低,怎么找一份编程的工作?

二本、大专学历的,第一份工作可以投外包公司或50人以下的小公司,赚取一定的工作经验之后再跳槽。外包公司:此类公司对学历要求不高,他们是来之不拒的。具体原因请站内搜索 “外包”小公司:这种初创公司招人困难,因此不会太计较学历。对于低学历人群,直接去中等以上公司是不现实的。曲线救国,才是行得通的战略。...

2019-08-13 15:45:18 861

HMAC-SHA1算法的VC DLL

把HMAC-SHA1封装为DLL ,此库免费使用。

2013-07-12

Android AAC 编码解码库 V1.1

这次只更新一个libaac.so文件,请替换V1.0项目中的这个文件,其他都不变。

2013-07-08

Android AAC 编码解码库 V1.0

适用于Android的AAC编码器和解码器,内部为FDK_AAC。效率高,接口简单,一看便会。

2013-07-07

桌面抓屏直播

桌面抓屏直播程序, hls,直播与回看功能

2013-01-26

文件合并程序

一个文件合并程序,可以多选源文件、调整文件位置、编辑文件列表,然后合并成一个输出文件。用于将多段文件合并成大文件,采用追加合并的方式。

2012-08-22

osapi 跨平台系统API封装 for C

为跨平台(win32/linux)编程而设计的一套系统API,封装了thread,socket, mutex, semaphore, sharedmemory, int type等接口和类型。开发者使用这套接口来开发C程序时,可以做到在不同的平台上只需要一套代码,可以无视windows/linux中对线程、互斥的实现上的差异。本人使用多年,久经考验,可放心使用。 (这是C版本,C++开发人员请直接下载C++版本) - 特为中国的开发人员奉献!

2012-05-15

osapi 跨平台系统API封装 for C++

为跨平台(win32/linux)编程而设计的一套系统API,封装了thread,socket, mutex, semaphore, sharedmemory, int type等接口和类型。开发者使用这套接口来开发C++程序时,可以做到在不同的平台上只需要一套代码,可以无视windows/linux中对线程、互斥的实现上的差异。本人使用多年,久经考验,可放心使用。 - 特为中国的开发人员奉献!

2012-05-15

DES算法的C++代码及例子

标准DES / 3DES算法,含ECB, FCB等方式,使用帮助及例子。内含标准测试向量,经验证是有效的。

2011-09-23

AES算法的C++代码及例子

AES算法,又称rijndael算法,经测试好用。内含C++代码及使用帮助

2011-09-23

Flash Media Live Encoder 3.2

Flash Media Live Encoder 3.2,可以取摄像头的图像传到Flash Media Server。

2011-09-23

ffmpeg 0.8.3 for windows 编译好的库

ffmpeg最新代码编译出来的库,经测试好用, 版本是0.8.3。 包含 bin, include, lib

2011-09-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除