1. 什么是热加载 热加载是指可以在不重启服务的情况下让更改的代码生效,热加载可以显著的提升开发以及调试的效率,它是基于 Java 的类加载器实现的,但是由于热加载的不安全性,一般不会用于正式的生产环境. 2. 热加载与热部署的区别 首先,不管是热加载还是热部署,都可以在不重启服务的情况下编译/部署项目,都是基于 Java 的类加载器实现的. 那么两者到底有什么区别呢? 在部署方式上: 热部署是在服务器运行时重新部署项目. 热加载是在运行时重新加载 class. 在实现原理上: 热部署是直接重新…
如何手动写一个Python脚本自动爬取Bilibili小视频 国庆结束之余,某个不务正业的码农不好好干活,在B站瞎逛着,毕竟国庆嘛,还让不让人休息了诶-- 我身边的很多小伙伴们在朋友圈里面晒着出去游玩的照片,简直了,人多的不要不要的,长城被堵到水泄不通,老实人想想啊,既然人这么多,哪都不去也是件好事,没事还可以刷刷 B 站 23333 .这时候老实人也有了一个大胆地想法,能不能让这些在旅游景点排队的小伙伴们更快地打发时间呢?考虑到视频的娱乐性和大众观看量,我决定对 B 站新推出的小视频功能下手,…
之前初学时看过可以实现Iterable接口实现Iterator迭代器的支持,并且也支持foreach循环.现在学习了数据结构,手动写一个单链表支持foreach循环吧. 手写foreach循环步骤: 1.实现Iteratable接口 2.内部类实现Iterator接口,重写getNext方法和next方法 例子:写了这两步即可实现foreach循环和Iterator迭代 package com.littlepage.foreach; public class Node<T> { //membe…
前言 Java设计模式9:代理模式一文中,讲到了动态代理,动态代理里面用到了一个类就是java.lang.reflect.Proxy,这个类是根据代理内容为传入的接口生成代理用的.本文就自己写一个Proxy类出来,功能和java.lang.reflect.Proxy一样,传入接口.代理内容,生成代理. 抛砖引玉吧,个人觉得自己写一些JDK里面的那些类挺好的,写一遍和看一遍真的是两个不同的概念,写一遍既加深了对于这些类的理解.提升了自己的写代码水平,也可以在写完之后对比一下自己的实现有哪些写得不好…
本文内容 涞源于  罗刚 老师的 书籍 << 自己动手写网络爬虫一书 >> ; 本文将介绍 1: 网络爬虫的是做什么的?  2: 手动写一个简单的网络爬虫; 1: 网络爬虫是做什么的?  他的主要工作就是 跟据指定的url地址 去发送请求,获得响应, 然后解析响应 , 一方面从响应中查找出要查找的数据,另一方面从响应中在解析出新的URL路径, 然后继续访问,继续解析;查找需要的数据和继续解析出新的URL路径  . 这就是网络爬虫主要干的工作.  下面是流程图: 通过上面的流程图 能…
自己写一个mvc框架吧(一) 目录 自己写一个mvc框架吧(一) 自己写一个mvc框架吧(二) 自己写一个mvc框架吧(三) 自己写一个mvc框架吧(四) 写之前的一些废话 废话 1 (总是要先随便说点啥) 写了好几年的java程序,基本上每个项目都有用到mvc的框架,可能是spring mvc也可能是struts.这些框架怎么用相信大家也都很熟悉了,但是有没有想过自己写一个属于自己的mvc的框架呢?有没有想过为啥你请求一个http的地址,你的一个class里的方法就能被执行了呢?现在咱们开始写…
教你做图片懒加载插件 那一年 那一年,我还年轻 刚接手一个ASP.NET MVC 的 web 项目, (C#/jQuery/Bootstrap) 并没有做 web 的经验,没有预留学习时间, (作为项目组长的我,主要C#客户端经验) 项目来了只能硬上,把JS比作C#来写(哭 当时接到请求协助解决一个图片显示慢的问题时,给出了一个后来看来不好的解决方案. 那个项目结束一段时间之后,内心愧疚的我把这个图片懒加载的jQuery插件发了过去.(现在我JS已经搞很溜了你信不信,哇哈哈~) jQuery 的…
本文会从内部原理到具体实现来详细介绍如何开发一个简洁而实用的Android图片加载缓存框架,并在内存占用与加载图片所需时间这两个方面与主流图片加载框架之一Universal Image Loader做出比较,来帮助我们量化这个框架的性能.通过开发这个框架,我们可以进一步深入了解Android中的Bitmap操作.LruCache.LruDiskCache,让我们以后与Bitmap打交道能够更加得心应手.若对Bitmap的大小计算及inSampleSize计算还不太熟悉,请参考这里:高效加载Bit…
http://blog.csdn.net/qq_33747722/article/details/53539532 自己手写一个类似于CanSeeObject.Seek等任务节点并不是一件难事 下面我介绍CanSeeObject和Seek任务节点的代码生成,基本成功实现了原来节点的功能 LJLCanSeeObject代码如下: using UnityEngine; using System.Collections; using BehaviorDesigner.Runtime; using Be…
[试题描述] 请用shell写一个简短的程序,实现1+2+...+100的功能. [程序] 方法一: #!/bin/bash ..} do let sum+=$i done echo $sum 方法二: #!/bin/bash ....} do let sum+=$i done echo $sum 方法三: #!/bin/bash ;i<=;i++)) do let sum+=$i done echo $sum 其他方法: 可以while循环.until等方式实现.…
自己写一个mvc框架吧(五) 给框架添加注解的支持 一段废话 上一章本来是说这一章要写视图处理的部分,但是由于我在测试代码的时候需要频繁的修改配置文件,太麻烦了.所以这一章先把支持注解的功能加上,这样就不需要经常地修改配置文件了. 至于视图处理的地方,就还是先用json吧,找时间再写. 项目地址在:https://github.com/hjx601496320/aMvc . 测试代码在:https://github.com/hjx601496320/amvc-test . 怎么写呢? 因为在之前…
自己写一个mvc框架吧(四) 写一个请求的入口,以及初始化框架 上一章写了获取方法的入参,并根据入参的参数类型进行数据转换.这时候,我们已经具备了通过反射调用方法的一切必要条件.现在我们缺少一个http请求的入口,就是一个servlet.现在我们开始写吧- 在这一章我们要做的事情有 定义一个配置文件,用来描述什么样的请求映射到哪一个class的哪一个方法上面. 在servlet初始化后,根据上面定义的配置文件加载mvc框架. 在一个http请求进入后,根据其请求路径,找到相应的方法,获取参数,使…
自己写一个mvc框架吧(三) 根据Method获取参数并转换参数类型 上一篇我们将url与Method的映射创建完毕,并成功的将映射关系创建起来了.这一篇我们将根据Method的入参参数名称.参数类型来获取参数,并转换参数类型,使其能够符合Method的定义. 事先说明 因为这里只是一个mvc框架的简单实现,仅仅只做到了基本数据类型和基本数据类型包装类的转换,没有做到spring那样的很复杂的数据绑定功能.所以我在代码上面加了比较强的校验. 现在开始写吧 我们从一次http请求中获取参数的时候,…
生成sql:where 上一篇里我们实现了生成insert的sql,下面要开始实现update,delete,select的sql语句了.但是这些语句有一个比较麻烦的地方是:它们一般后面都会有where条件,因为在执行的时候不能把表里所有的数据都进行操作. 所以这里我们需要先生成条件的sql.大概是这样的: WHERE id = ? AND name != ? OR age >= ? where 后面的参数继续用 "?" 代替.值就放在一个有序的集合中就好了.类似上一篇提到的in…
自己写一个mvc框架吧(二) 自己写代码的习惯 写一个框架吧,如果这个框架会用到一些配置上的东西,我自己习惯是先不用考虑这个配置文件应该是怎样的,什么形式的,先用一个java对象(比如叫 Config.java) 都给放进去.等到功能写的差不多了,需要考虑到使用配置文件了,就可以写一个工厂类,根据不同的配置(可能是xml,可能是json,甚至是注解)把刚才说的 Config.java 对象生成出来. 现在开始写- 我们先写URL与Method的映射关系 装模做样的分析一下 因为一个mvc的框架个…
写之前的说明 其实吧. 这个东西已经写好了,地址在:https://github.com/hjx601496320/JdbcPlus 这系列文章算是我写的过程的总结吧.(恩系列,说明我可能会写好久,╮(╯▽╰)╭) 现在有很多的现成的orm框架,为什么还要自己写一个? 框架这种东西个人认为想要了解其中的原理,还是要自己尝试实现一个来的比较快.我是那种不爱看源码的程序员,除非是有些地方实在没有思路或者网上也找不到相关的文章,否则是不会去看源码的.懒--~ 写这个的目的是什么? 现在流行的orm比如…
` 创建一个Hello.java文件使用记事本打开 public class Hello{ public static void main(String [] args){ System.out.println("hello world"); } } ` 在文件所在目录使用cmd命令行工具 javac *.java 编译刚才写的Hello.java 编译完成后产生了一个Hello.class文件,然后使用java Hello运行即可在命令行看到输出的hello world(大前提是配置…
/*可加载页面吗*/function canLoadMore() { return $('.loadin').length < 1;}/*移除正在加载字样*/function removeMore() { $('.loadin').remove();}/*没有更多内容字样*/function noMore($contentBox) { $('.loadin').html('<div style="color: #999;font-size: 36px">没有更多了..…
1 /** 2 * @description 手写jquery 3 * @author ddxldxl 4 */ 5 class Jquery { 6 constructor(selector) { 7 //遍历dom树 8 let res = document.querySelectorAll(selector) 9 let length = res.length 10 for( let i=0; i<length; i++) { 11 this[i] = res[i] 12 } 13 thi…
一.做一个类,派生自HttpServlet 1.导两个包 javax.servlet.*; javax.servlet.http.* 2.重写两个方法doGet,doPost 打开tomcat中的servlet-api.jar包,复制这两个方法的实现. package com.itnba.maya.servlet; import java.io.IOException; import javax.servlet.*;//导入包 import javax.servlet.http.*;//导入包…
生成sql:select 上一篇讲了怎样生成一个sql中where的一部分,之后我们要做事情就简单很多了,就只要像最开始一样的生成各种sql语句就好了,之后只要再加上我们需要的条件,一个完整的sql就顺利的做好了. 现在我们开始写生成查询语句的sql.一个查询语句大致上是这样的: SELECT name, id, create_date, age, mark, status FROM user 这里可以看出来,一个基础的查询语句基本上就是一个 SELECT 后面加上需要查询的字段,跟上 FROM…
1.叙述 java security包下有很多加密算法类,我们可以很简单的调用它们.他们虽然功能很全,但是使用起来步骤有些繁琐.我在这里封装来一些常用的加密算法及他们常用的一些方法,来简化代码. 工具类结构如下: 调用步骤: 1.Client为调用类,统一调用加密门面对象(EncrypFacade),通过加密门面对象的对应方法,可以选择构建出对称加密门面对象(SymmetryFacade).非对称加密门面对象(NoSymmetryFacade).其他加密门面对象(OtherFacade). 2.…
使用反射解析class 上一篇我们完成了class到表映射关系的建立,但是这个并不能被代码正确处理,我们还需要让程序能够正确的识别这些映射关系. 这一篇主要讲的是建立一个从class到表的模型,使我们在class上添加的注解能够正确的被识别并处理.这里主要用到的是java中的反射相关的知识.不了解的同学请自行百度一下,不是很难-,另外这一篇也会稍微的提到一点反射的用法. 现在开始. 我们主要的需求是根绝我们添加的注解,生成各种类型的sql语句,所以我们首先要能够获取添加在java类名,属性,方法…
创建映射关系 ​ 想要实现一个orm的功能,我觉得就是要将class和数据库中的表创建映射关系.把class的名称和表的名称,class属性名称和表的字段名称,属性类型与表的字段类型一一对应起来.可以通过配置文件,注解等等各种方式实现这个映射关系. 需要的依赖 ​ 因为编写配置文件总是一件十分繁琐的事情,所以我决定使用注解的方式来实现这个映射.在项目刚开始写的时候我用的是自定义注解的方法.自己规定一套注解,后来觉得这样没有太大的必要,因为已经有jpa里的一套注解.所以直接用就好了.所以添加依赖:…
开始准备生成sql 在上一篇里,我们已经取到了我们在生成sql语句中所需要的信息,这一篇里我们开始根据class来生成我们需要的sql.在这之前我们先确认几件事情 sql里的参数我们使用占位符的形式. 这里用的是jdbc中的PreparedStatement,sql中的参数使用"?"的形式. 大致上是这样的: Connection connection = dataSource.getConnection(); PreparedStatement preparedStatement =…
参考<Tomcat与Java Web开发技术详解>中的命令: javac -classpath c:\tomcat\lib\servlet-api.jar                              -sourcepath src    -d WEB-INF\classes src\mypack\DispatcherServlet.java 指定所依赖的jar包位置(还可以加其他jar,用;分开)       指定源文件路径   指定目标位置              指定源文件…
这个问题解决方法很简单,只要设置一个类的静态整型成员(事例中我设置的是n),初始化值为1,然后在其构造函数中添加语句使其+1(n++),这样需要查询创建了多少个对象时直接查询n的值就可以了,如下: package trr; public class trr { public static void main(String[] args) { a c1=new a(); System.out.println("创建了"+a.n+"个对象"); a c2=new a()…
package com.simon.study; /** * 线程死锁 一个线程要同时拥有两个对象的资源才能进行下一步操作: * @author: Simon * @date: 2017年7月29日 下午9:48:43 */ public class DeadLock implements Runnable{ static Object o1=new Object(),o2=new Object(); ; public void run() { // TODO Auto-generated me…
单例模式是最简单的设计模式,就让我像玩简单的游戏一样写下去吧. v1: 简单模式 和这个版本有过一面之缘,但不敢苟同. class Singleton { private: Singleton() {} public: static Singleton * getIns() { static Singleton * ins = new Singleton(); return ins; } }; 问题:何时析构不明确:最重要的是调用多次getIns函数会产生多个static Singleton指针…
到目前为止,我们接触过的重点术语,总结一下: Java体系的技术被划分为三大块: JavaSE:标准版 JavaEE:企业版 JavaME:微型版 安装JDK之后: JDK:java开发工具箱 JRE: java运行环境 JVM:java虚拟机 Java零基础教程视频 030-Java的加载与执行原理剖析 对Java的加载与执行的理解(理论比较重要) java程序从编写到最终运行经历了哪些过程? java程序非常重要的两个阶段: 编译阶段 运行阶段 注意:java程序员直接编写的java代码(普…