- 博客(36)
- 资源 (2)
- 收藏
- 关注
原创 MySQL 执行计划解读
在 MySQL 查询语句遇到性能问题时,常常会猜测是其索引设置或者 SQL 写法问题导致。通常地使用 explain 查看 SQL 执行计划,从执行计划中分析出当前要优化 SQL 的性能消耗关键点。
2022-12-27 17:57:07 1007 2
原创 Git 配置 SSH
git ssh 设置git config --global user.name “xxxx.xxx”git config --global user.email “xxxx.xxx@xxx.com”重新生成 ssh key,并覆盖到用户目录下的.ssh目录执行命令:ssh-keygen -t rsa -C “xxxx.xxx@xxx.com”执行生成 key 时,主要不要使用密码,这样执行脚本时就不需每次输入 key 的密码在执行命令过程中要求输入密码的时候,直接 Enter 键跳过即可将
2021-06-18 10:20:05 154
原创 跨域访问CORS探究
什么是跨域?跨域,简单地讲,就是一个Web应用(http://www.a.com)下的文档或脚本访问另一个Web应用(http://www.b.com)下的资源。任何两个应用所在域,只要存在协议、域名或端口任意一个不相同,即被认为访问是跨域的。为什么会出现跨域访问限制?由于浏览器同源策略,我们这里主要讨论XmlHttpRequest同源策略,XmlHttpRequest同源策略禁止...
2018-05-25 17:55:41 3625
原创 MacOS X 安装Mercurial
Mercurial以下是来自Mercurial官网的介绍Mercurial is a free, distributed source control management tool. It efficiently handles projects of any size and offers an easy and intuitive interface.Mercurial和当前...
2018-03-13 09:42:28 3733
原创 Node.js、npm和一些前端知识解惑
对以往经历过原生App开发、当前主要做后端开发的我这样一个童鞋来说,不仅觉得Web前端布局繁杂,并且对其技术体系了解不深,人说当今是大前端时代,微信推出小程序后我也开始接触到相关的开发,现在很多开发框架也引入了数据绑定的概念,类似的如vue.js。一直以来对Node.js也有很多疑问,在此记录个解惑笔记。Node.js 和 npm[官网关于Node.js的描述]Node.js® ...
2018-03-13 09:38:53 2696
原创 xcode6.1制作framework指引
在ios的开发中,framework为我们使用的库文件,类似于java中的jar包。下面写写制作framework的步骤,使用xcode6.1:1. 新建项目如下:2. 新建完项目后,点击选择刚才新建的项目,右键单击并删除targets中向导自动生成的这两个target3.删除项目文件中的test文件夹删除后的项目结构如下:4. 删除bu
2015-01-16 09:52:29 669
原创 Git分支及其相关概念和命令简介
Git分支为我们进行代码修改、扩展、团队合作等提供了一个方便的形式。一般情况下在项目开发中,我们创建一个项目的仓库repository之后,Git就为我们创建主分支master,在开发时期,我所了解的通用的做法是创建一个develop分支,开发人员在develop分支下进行开发分支。具体开发时,还可以这样做,为项目扩展或修改某个特性时可以在develop分支的基础上创建名为feature-xxx的
2014-11-26 12:46:42 615
翻译 Java String, StringBuffer 和 StringBuilder 类的使用时机
Java为字符串对象提供了三个类,分别为String,StringBuffer,StringBuilder。这三个类都可以用于表示字符串对象。每个类都有其具体的用途。根据需求的不同,其中一个类可能会是更好的选择。下面的例子描述使用String,StringBuffer,StringBuilder的时机。StringString类的一个重要特征是它是不可变的。即使String类包含了像rep
2014-04-03 19:52:45 1082
原创 JBoss AS 7.1.1下,从远程客户端使用JNDI调用EJB
刚开始学习EJB,网上很多视频教程都是使用JBoss7之前的版本的应用服务器。在此,记录一下完成这个EJB HelloWorld 程序的过程。第一步:使用Eclipse或MyEclips创建一个EJB Project,在项目中编写EJBs,这个项目将被我们部署到JBoss AS 7.1.1服务器端。此处工程名为ejb_01package com.chan.ejb;public
2014-03-09 15:15:31 1927 2
原创 Spirng4.0.2 lib jar包下载地址
spring jar包下载地址:http://repo.spring.io/libs-release/org/springframework/spring/4.0.2.RELEASE/spring-framework-4.0.2.RELEASE-dist.zipspring文档下载地址:http://repo.spring.io/libs-release/org/springframe
2014-02-22 00:25:07 4318
翻译 内存泄漏的介绍
原文地址:http://www.programcreek.com/2013/10/the-introduction-of-memory-leak-what-why-and-how/ Java中一个最重要的优势之一就是它的内存管理。你简单地创建一些对象后,Java垃圾收集器就会帮你为这些对象分配和回收它们的内存。然而,真实情况往往没有这么简单,因为内存泄漏的问题在Java应用程序中经
2013-12-20 23:40:18 601
原创 图的邻接表实现迪杰斯特拉算法求最短路径
存储结构定义:typedef struct ArcNode { int adjvex;//该弧所指向的顶点的位置 struct ArcNode *nextarc;//指向下一条弧的指针 int length; int price; VertexType departurecity; VertexType arrivalcity;} ArcNode;//弧typedef str
2013-07-05 18:04:14 4230 1
原创 Servlet学习笔记3之通过继承HttpServlet开发Servlet
通过继承HttpServlet开发Servlet,需要重写doGet()和doPost()方法://这是第三种开发Servlet的方法,通过继承HttpServletpackage com.chan;import javax.servlet.http.*;import java.io.*;public class HelloHttp extends HttpServlet {
2013-05-05 14:12:23 849
原创 Servlet学习笔记2之通过继承GenericServlet开发Servlet
通过继承GenericServlet开发Servlet:这种方式只需要重写service方法//这是第二种开发Servlet的方法,通过继承GenericServlet来开发package com.chan;import javax.servlet.GenericServlet;import javax.servlet.*;import java.io.*;public cla
2013-05-05 13:51:03 1100
原创 Servlet学习笔记1之通过实现Servlet接口开发一个HelloServ
这是通过使用简单的文本编辑器开发的Servlet,首先我们应该在我们安装的Tomcat的目录下的webapps目录下建立自己的web应用目录结构,例如:在webapps目录下新建MyWebApp目录,在MyWebApp目录下新建WEB-INF目录,在WEB-INF目录下继续新建classes目录、web.xml文件,由此完成web应用目录结构的建立。注意:我们将编译产生的HelloServle
2013-05-05 13:18:50 856
原创 Java学习笔记之线程的控制
join线程:Thread提供了让一个线程等待另一个线程完成的方法----join()方法当某个程序执行流中调用了其他线程的join()方法时,调用线程将被阻塞,直到被join()方法加入的join线程执行完为止。join()方法的三种重载方式:1.join():等待被join的线程执行完成。2.join(long millis):等待被join的线程的时间最长为millis毫秒。
2013-05-01 20:51:49 526
原创 Java学习笔记之线程的生命周期
在线程的生命周期中,要经过创建(new)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)5种状态。当程序中多条线程启动后,CPU就会在多条线程之间切换运行,于是线程状态也会多次在运行、阻塞之间切换。新建和就绪状态:当程序使用new关键字创建了一个线程后,该线程就处于新建状态,此时它和其他的Java对象一样,仅仅由虚拟机为其分配内存,并初始化其
2013-04-29 23:08:34 651
原创 Java学习笔记之线程的创建和启动
每个运行中的程序就是一个进程,一个程序运行时,内部包含了多个顺序执行流,每个顺序执行流就是一个线程。并发性(concurrency):并发指在同一时刻只能有一条指令执行,但多个进程指令被快速轮换执行。并行性(parallel):并行指在同一时刻,有多条指令在多个处理器上同时执行。线程的运行是抢占式的。一个线程可以创建和撤销另一线程,同一个进程中的多个线程可以并发执行。线程的调度和管
2013-04-29 20:10:43 651
原创 MySQL学习笔记之常用函数
#concat 连接SELECT CONCAT(dname,loc)FROM tb_dept;#转换大写、小写LOWERSELECT UPPER(ename) from tb_emp where empno = 8000;#返回字符串长度select length(ename) from tb_emp where empno=8000;#截子串,从1
2013-04-24 18:11:59 511
原创 Java学习笔记之垃圾收集机制和原理
当程序创建对象、数组等引用类型实例时,系统在堆内存中分配一块内存去将对象保存起来,在栈中分配一个引用指向堆内存中的对象。当堆内存中的对象失去引用时,即没有引用变量指向堆内存中的对象时,存储该对象的内存就会变成垃圾,等待垃圾回收机制进行回收。垃圾回收机制的特征:1.只负责回收堆内存中的对象,不会回收任何物理资源(如数据库连接,磁盘文件IO,网络连接)。2.当对象永久性地失去引用后,系
2013-04-22 22:59:04 592
原创 Java学习笔记之断言的相关机制和使用
断言机制允许在测试期间想代码中插入一些检查语句,当代码发布时,这些插入的检测语句会被自动移走。断言默认是被禁用的,可以在运行程序时使用如下命令启用断言:java -enableassertinos:MyApp(类名)或者java -ea:MyApp(类名)在某个类和某个包下使用断言:java -ea:MyClass -ea:com.mycompany.mylib... MyApp
2013-04-22 22:11:05 686
原创 Java学习笔记之异常的定义和处理
一、Java中,非正常情况分为两种:异常Exception和错误Error。1.Error错误无法处理,Error错误一般是与虚拟机相关的问题,如系统崩溃、虚拟机错误、动态链接失败等。2.Java将异常分为两种:Checked异常和Runtime异常 在Java中,Checked异常都是可以在编译阶段可以被处理的异常,因此Java强制程序处理所有的Checked异常
2013-04-21 22:27:44 797
转载 Eclipse快捷键
提示所有快捷键的快捷键是 ctrl+shift+L 菜单是在: window-->preferences-->general-->keys 提供能容帮助是 alt+/Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行
2013-04-21 19:53:45 455
转载 NetBeans的默认快捷键
1、完成代码:ctrl+\ //任何地方按下此组合键,均会提示相应的参考字段; 2、错误提示:alt + enter //顾名思义,当系统报错时,按下此组合可以查看系统提示; 3、自动完成字符串: ctrl+L ctrl+k //后者(Ctrl+L没用过)组合键自动打出字符串,每按一次打出一个新串,串序自下向上; 4、右键:修复自动导入 5、右键:格式化代码风格 6、导入所需包
2013-04-19 23:48:28 451
原创 不同类型的线性链表
线性链表:具有链接存储结构的线性表线性链表: 单链表:每个结点有一个指针域,有一个头指针h而无尾指针,表中最后一个结点的指针域是空的。其结构简单,但查找效率不高(查某结点总要从头开始) 循环链表:每个结点有一个指针域,有一个头指针h和一个尾指针r,表中最后一个结点的指针域不是空的,尾指针指向表的第一个结点。它形成环行结构,可显著提高查找效率(从任何结点出发都能查
2013-04-19 23:46:44 1097
原创 MySQL学习笔记3SELECT 语句
#SELECT语句CREATE TABLE tb_DEPT( DEPTNO INT PRIMARY KEY , #部门编号 DNAME VARCHAR(14), #部门名称 LOC VARCHAR(13) #地址);#查找 字段,字段 从表SELECT deptno,dname,loc FROM tb_dept;SELECT * FROM tb_dept
2013-04-13 03:01:35 596
原创 MySQL学习笔记2DML
DML:#1.插入数据必须先插入tb_dept数据,因为tb_emp有外键约束。注意:字段和值数量和类型都需要匹配INSERT INTO tb_dept(NAME,loc,description) VALUES('开发部’,'广州','负责软件开发工作');#2.如果插入的values是所有字段,可以不用显式写插入的字段名,强烈不推荐,不会影响到自动增长INSERT INT
2013-04-10 22:46:35 527
原创 子类中的方法之重写和static方法不能被重写
1.重写一个方法,即在子类中完全取代它的功能,重写后的方法必须和父类中的被替代方法拥有完全一致的方法签名,包括返回值。2.static修饰的方法不能被重写,下面看一个容易被误解为static方法被重写的例子class Base {static void aMethod() {System.out.println("Base.aMethod");}}public
2013-04-08 12:50:04 1833
转载 将中缀表达是转换为后缀表达式(逆波兰式)的一般算法
将一个普通的中序表达式转换为逆波兰表达式的一般算法是:首先需要分配2个栈,一个作为临时存储运算符的栈S1(含一个结束符号),一个作为输入逆波兰式的栈S2(空栈),S1栈可先放入优先级最低的运算符#,注意,中缀式应以此最低优先级的运算符结束。可指定其他字符,不一定非#不可。从中缀式的左端开始取字符,逐序进行如下步骤:(1)若取出的字符是操作数,则分析出完整的运算数,该操作数直接送入S
2013-04-08 00:12:12 1631
转载 逆波兰式(后缀表达式)的表达求值
逆波兰表达式求值[编辑]伪代码while有输入符号读入下一个符号IF是一个操作数入栈ELSE IF是一个操作符有一个先验的表格给出该操作符需要n个参数IF堆栈中少于n个操作数(错误) 用户没有输入足够的操作数Else,n个操作数出栈计算操作符。将计算所得的值入栈IF栈内只有一个值这个值就是整个计算式的结果ELSE多于一个值
2013-04-08 00:08:20 1450
原创 MySQL学习笔记1(建表和约束)
1.查看编码方式语句:SHOW VARIABLES LIKE 'charater_set_client';2.修改MySQL目录下的my.ini文件也可修改字符集编码default-character-set=gbk(修改后需重启MySQL服务)3.bin目录下的MySQLInstanceConfig.exe,重新配置4.建表(大小写区分与系
2013-03-31 00:25:50 588
原创 对带头结点的单链表实现就地逆置的算法分析
试写一算法,对单链表实现就地逆置。实现下列函数:void Inverse(LinkList &L); /* 对带头结点的单链表L实现就地逆置 */单链表类型定义如下:typedef struct LNode{ ElemType data; struct LNode *next;} LNode, *LinkList;voi
2013-03-28 01:33:10 17776 6
原创 关于dos窗口下运行java程序,中文字符打印成乱码的心得总结
在我们新建java源文件的时候,windows系统默认把我们的编码方式设置为ANSI,而命令行窗口的编码方式也为默认的ANSI。当我们修改源文件的编码方式为utf-8的时候,而dos的编码方式还是为ANSI,则这个时候我们打印出中文字符串会显示为乱码。所以我们要保持源文件的编码格式和dos窗口的编码格式一致,这样我们打印出来就不会乱码了!
2013-03-23 14:29:02 1560
原创 关于使用javac进行编译java文件时,出现的java.lang.NotClassDefFoundError解决
解决方案:JDK安装后 没有tools.jar 和dt.jar包的解决办法 今天花了几个小时弄JDK,安装后发现jdk\lib中没有tools.jar 和 dt.jar包,网上搜罗了很多解决办法,都没有解决问题。最后看到一个本质的解决方法,出现这个问题的原因是在JDK安装时将JDK和JRE放在了同一目录下,导致了文件的覆盖,致使tools.jar 和 dt.jar包被覆盖。
2013-03-23 13:56:54 2936 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人