自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我的博客

个人博客地址:zhangyida.cn

  • 博客(50)
  • 资源 (9)
  • 收藏
  • 关注

原创 排序算法之堆排序

基础概念完全二叉树完全二叉树(Complete Binary Tree):若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。堆堆总是满足以下两个特性:堆是一棵完全二叉树。堆中每个结点的值总是不大于(或不小于)其子结点的值。其中,每个结点的值总是不大于其子结点的值

2018-01-31 15:45:30 823 3

原创 剑指offer面试题8-旋转数组的最小数字

问题描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3, 4, 5, 1, 2}为数组{1, 2, 3, 4, 5}的一个旋转,该数组最小值为1。解决思路最简单的解决方法不过就是把数组遍历一遍,但是这种方式是一个时间复杂度为O(n)的算法,而且这个算法没有利用旋转数组的特性,不是最优解

2018-01-31 15:40:43 310

原创 剑指offer面试题10-二进制中1的个数

问题描述请实现一个函数,输入一个整数,输出该整数二进制表示中1的个数。 例如把9的二进制是1001,有2位是1。因此,如果输入9,该函数输出2。解决算法算法一根据题目,我们可以想到先判断最低位是否为1,然后将次高位右移一位,然后在判断最低位是否为1,通过不断右移直到最高位右移到最低位时就可判断出每一位的情况,就得到了有多少位是1。那么问题就来了,如和判断最低位是否为1。

2018-01-31 15:39:42 432

原创 剑指offer面试题9-斐波那契数列问题

问题描述写一个函数,输入n,求斐波那契(Fibonacci)数列第n项。 斐波那契数列定义为:f(n) = f(n-1) + f(n-2) (n>1) ,其中f(0)=0, f(1)=1。递归解法斐波那契数列是一个典型的递归解法,代码如下:public int Fibonacci(int n) { if (n == 0) { return 0;

2018-01-31 15:37:13 296

原创 剑指offer面试题3-二维数组查找问题

问题描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路暴力破解暴力破解方式也就是对二维数组中的每个元素逐个检查,结束条件为找到和目标值相等的元素或者查询到最后一个元素。对于一个行列数都为n的二维数组而言,最坏的情况是将整个数组遍历完,这种情

2018-01-31 15:31:33 321

原创 右移运算符总结

概念右移运算符是将一个二进制数按指定移动的位数向右移动。移动过程中,正数最高位补0,负数最高位补1,无符号数最高位补0。补码在计算机系统中,数值一律用补码来表示和存储,其中最高位表示符号位,1表示负数,0表示正数。 正数的补码是原码自身。负数补码是通过原码计算得到,计算过程为:符号位不变,其余位按照原码取反加1补码计算示例以计算十进制-100的补码为例,计算过程为

2018-01-31 15:27:45 34809 7

转载 The "Double-Checked Locking is Broken" Declaration

The "Double-Checked Locking is Broken" Declaration

2017-02-16 11:54:07 689

原创 Node.js Module -moudule.exports vs exports

本文主要描述了Node.js框架中module.exports和exports的用法及不同。

2017-02-15 21:20:45 420

原创 《java并发编程实战》读书笔记二 对象的发布与逸出

概念发布(publishing): 发布一个对象的意思是使它能够被当前范围之外的代码所使用。比如将一个引用存储到其他代码可以访问的地方,在一个非私有的方法中返回这个引用,也可以把它传递到其他类的方法中。逸出(escape): 一个对象在尚未准备好时就将它发布,这种情况称作逸出。逸出的方式上边关于逸出的概念讲述的很是模糊,下面列举几个逸出的示例。第一,通过静态变量引用逸出public st

2016-04-17 16:26:01 1586 4

原创 《java并发编程实战》读书笔记一 可见性和重排序现象

可见性和“重排序(reordering)”现象

2016-04-10 21:45:04 824

翻译 Thread vs Runnable in Java

在Java中,可以通过继承Thread类或实现Runnable接口(暂时不提Callable接口)实现一个线程,那具体这两者之间有什么区别呢,什么时候该继承Thread类,什么时候该实现Runnable接口?Thread和Runnable的不同Java不支持多继承,这就意味着你继承Thread类后就不能继承其他类了。在面向对象编程中,继承一个类往往意味着对父类进行了修改或者扩展。如果我们没有对T

2016-03-29 22:28:19 457 1

原创 Java邮件开发(三):解决附件名为乱码及显示友好名称

在上一篇文章(Java邮件开发(二):使用JMail发送一封图文并茂且包含附件的邮件(下))中,我们学会了使用JavaMail发送一封复杂的邮件。遗留的问题有以下两个:1.附件的名称只能为英文,中文乱码2.友好名称的显示。我们使用163等邮箱发送邮件时,我们经常可以看到收件人一栏中会是:张益达 这种方式。在上一版本的代码中并没有使用这样的方式。下面解决这两个问题1. 对

2014-02-09 22:30:33 10546

原创 Java邮件开发(二):使用JMail发送一封图文并茂且包含附件的邮件(下)

在上一篇文章Java邮件开发(二):使用JMail发送一封图文并茂且包含附件的邮件(上)中,我们大概了解了一封邮件的组成。下面我们完成发送有以下要求的邮件:1.正文是一段html代码2.这段html代码中内嵌一张图片3.这封邮件包含两个附件首先根据上篇文章最后的“邮件组织结构API”,分析以下有哪些MimeMultipart对象,有哪些MimeBodyPart对象。1.

2014-02-09 22:12:10 4110

原创 Java邮件开发(二):使用JMail发送一封图文并茂且包含附件的邮件(上)

有时我们会有这样的需求:我们需要一封看起来比较丰富的邮件,有文字、超链接、图片等等而不是一堆文字的堆砌。有时我们也需要在邮件里添加一些附件。这样的邮件几乎所有的邮箱都支持,如163、新浪、搜狐、QQ(好像搜狐不支持本地上传的图片)。可是在这些邮件的背后有什么我们并不知道,下面让我们先来了解一下邮件的组成。一、复合邮件的整体结构图从图中可以看出一封邮件有两部分组成:整封邮件的MI

2014-02-09 21:53:14 2542

原创 Java邮件开发(一):使用JMail发送一封简单邮件

JMail是进行邮件开发的组件。由于所需要的jar非官方开发,需要自行下载所需jar包,我使用的是javamail-1.4.7。不了解收发邮件过程的请先浏览我的另一片博客:电子邮件工作原理  大致步骤:1. 创建Properties对象,并为该对象设置相应内容2. 创建Session对象3. 创建Message对象,这个对象封装邮件的信息,如发件人、收件人、主题等等4.

2014-02-06 22:56:58 6386 1

转载 电子邮件工作原理

一、三种协议1. SMTP(Simple Mail Transfer Protocol)  SMTP 是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议。SMTP 是建立在 TCP上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。SMTP主要负责底层的邮件系统如何将邮件从一台机器传至另外一台机器。2. POP(Post Office Protocol)

2014-02-06 22:25:01 60319

原创 用Java对文件进行重命名

昨天闲来无事,对磁盘进行了整理。当整理到F盘(放的都是电影之类的)时发现好多电影文件名字前面都有一些标识,我经常在电影天堂上下载电影,所以下载的电影名前面都会有[电影天堂www.dy2018.com]、[电影天堂www.dy2018.net]等字样,感觉很不爽。于是我就想把这些字样去掉,可是程序猿都有一些懒,我也不例外,那么多懒得一个个删除,又懒得去网上找那些批量修改文件名的软件,就想到写个程序。

2014-01-25 18:12:10 5762

原创 SQL经典18题(不知道经不经典)

表结构emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)dept部门表(deptno部门编号/dname部门名称/loc地点)说明:工资 = 薪金 + 佣金没有说明,sql语句在Oracle、MySql下通用。如果使用Oracle练习,请用Scott账户登录,该账户下有这

2014-01-18 17:35:43 2016

原创 Oracle 单行函数

1.字符串函数转换大小写函数:select upper('aAbcjdJsadf') from dual; --大写select lower('AAADDAERAYRARE') from dual; --小写单词首字母大写函数(所有单词,以空格区分单词):select initcap(concat('today is',' signal day')) from dual;字符

2013-11-16 11:03:19 1046

原创 面试题之——常用排序算法

以下排序默认排序效果是从小到大,待排序序列:3,4,63,4,-9,0,1,32,-21.冒泡排序     基本思想:依次交换相邻两个元素,使得大的数据往下沉(或小的数据往上附浮)                        第一步:比较相邻的两个元素,如果前者比后者大,则交换两元素。否则,不交换。                        第二步:重复第一步直到最后两个

2013-09-22 16:43:28 1542

转载 [转]深入Java单例模式

在GoF的23种设计模式中,单例模式是比较简单的一种。然而,有时候越是简单的东西越容易出现问题。下面就单例设计模式详细的探讨一下。 所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在。就像是Java Web中的application,也就是提供了一个全局变量,用处相当广泛,比如保存全局数据,实现全局性的操作等。 1. 最简单的实现 首先,能够想到的最简单的实现

2013-09-18 23:25:40 760

原创 面试题之——将文件夹下java文件写入到新的文件夹,并修改扩展名

题目:将d:/code/java文件夹下的所有.java文件复制到d:/code/java/jad文件夹下并且将原来的文件的扩展名.java改为.jad源代码:package com.zyh.interview;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStre

2013-09-17 20:09:57 1759

原创 面试题之——对包含汉字的字符串截取指定字节数

题目:编写一个截取字符串的函数,输入为一个字符串和字节数, 输出为按字节截取的字符串,但要保证汉字不被截取半个,如"我ABC",4,应该截取"我AB",输入"我ABC汉DEF",6, 应该输出"我ABC",而不是"我ABC+汉的半个"。我们都知道在计算机中,存储一个汉字需要至少两个字节。例如:gbk和gb2312都是用两个字节存储一个汉字,而UTF-8是用三个字节存储一个汉字。关于字符编码

2013-09-16 22:32:30 2616

转载 [转]直接拿来用!超实用的Java数组技巧攻略

本文分享了关于Java数组最顶级的11大方法,帮助你解决工作流程问题,无论是运用在团队环境或是在私人项目中,你都可以直接拿来用! 0.  声明一个数组(Declare an array)String[] aArray = new String[5];String[] bArray = {"a","b","c", "d", "e"};String[] cArray = n

2013-09-16 20:40:56 708

转载 [转]汉字与字符编码

在GB2312编码中一个汉字占2个字节,而在UTF-8中,一个汉字要占3个字节”。“UTF-8编码(其实是一种Unicode编码) 或Unicode编码 本身就支持了,简体字.  繁体字, 英文,俄文,日文,韩文...等等..”网站用UTF-8显然多占了一半的空间,但是这样就应该能够保证在不同语言版本的系统中不会变成乱码吧。UTF-8下面,貌似汉字都是3字节的。UTF-32下,会是4字节

2013-09-16 18:53:36 1841

原创 面试题之——java交叉读取两个文件中单词,然后写入新的文件

今天看到一道面试题,题目为:编写一个程序,将a.txt文件中的单词与b.txt文件中的单词进行交替合并到c.txt文件中 。a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格分开。文章中给出的代码是import java.io.File;import java.io.FileReader;import java.io.FileWriter;public cl

2013-09-15 21:54:26 2401

原创 面试题之——抽象类(abstract class)与接口(interface)的区别

抽象类可以有构造方法,接口中不能有构造方法。(虽然抽象类有构造方法,但它也不能被实例化)抽象类中可以有普通成员变量,接口中没有普通成员变量。抽象类和接口中都可以包含静态成员变量。抽象类中的静态成员变量的访问类型可以是任意类型,但接口中定义的变量只能是public static final,并且默认为:public staic final类型。(接口毕竟要被子类实现,所以成员变量必须是public,

2013-09-13 17:58:07 3670

转载 详细解析Java中抽象类和接口的区别(转)

在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之

2013-09-13 17:00:50 691

原创 Ajax入门(与Java服务器交互)(三)——解析XML数据、使用级联下拉选择框

使用Ajax与后台服务器进行交互时,返回的数据并不是都是文本类型,也有xml类型、Jason类型等。本篇文章主要讲解对返回的xml类型数据进行解析。示例解析:我们要做到示例是,有两个下拉选框,第一个下拉框是省份,第二个是所选省下相对应的市。当省份改变时,相对应的市也应改变。例如,当选择广东省时,地区项应包括:广州、深圳、佛山、汕头。示例图示:源代码:jsp页面文

2013-08-17 19:15:30 1339

原创 Ajax入门(二)——乱码问题的解决

我们使用Ajax与服务器交互时,通常会传些参数过去,这些参数有时后会是中文,这时,就有可能产生乱码问题了。解决方法一使用一次encodeURI()方法。在javascript代码中将请求访问的URL地址使用encodeURI()方法转换一次,在服务器端接收参数后在对参数重新编码,例如在Java中,对接收来的参数(username)可以重新按UTF-8方式编码:new String(requ

2013-08-17 18:43:29 1210

原创 Ajax入门(与Java服务器交互)(一)

AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请

2013-08-16 22:57:10 2042

原创 window 便笺的快捷键

首先选中你要更改的文字,然后选择下面的快捷方式。Ctrl+N新建一张便笺Ctrl+D删除当前便笺Ctrl+E居中对齐Ctrl+R右对齐Ctrl+J左对齐Ctrl+I斜体Ctrl+B粗体Ctrl+U下划线Ctrl+T删除线Ctrl

2013-08-14 17:18:50 1042

原创 利用面向对象解母牛生小牛问题

用面向对象的方法解下面的题目:(这是在看马士兵的设计模式的Thinking_in_oo中最后给出的一道题)题目:农场一头小母牛,每年生头小母牛,母牛五岁产母牛,二十年上多少牛?题目解析:按照我的理解,农场首先有一头小母牛,当小母牛长到五岁的时候,它就成了老母牛了,然后就可以每年生小母牛了。根据题目意思,母牛五岁的那年就可以生小母牛了,问第20年的时候有多少头

2013-08-09 22:24:03 4560 4

原创 MyBatis使用教程(入门级)

使用步骤一、从 XML 中构建 SqlSessionFactory每 一 个 MyBatis 的 应 用 程 序 都 以 一 个 SqlSessionFactory 对 象 的 实 例 为 核 心 。 SqlSessionFactory 对 象 的 实 例 可 以 通 过 SqlSessionFactoryBuilder 对 象 来 获 得 。 SqlSessionFactoryBuild

2013-08-05 12:05:40 1807 1

转载 MyBatis的xml映射配置文件详解

先上具体示例:<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

2013-08-05 11:44:34 7170

转载 MyBatis中对象的范围和生命周期

【以下转载自MyBatis3.2.3官方文档】理解我们目前已经讨论过的不同范围和生命周期类是很重要的。 不正确的使用它们会导 致严重的并发问题。SqlSessionFactoryBuilder这个类可以被实例化,使用和丢弃。一旦你创建了 SqlSessionFactory 后,这个类就不需 要存在了。 因此 SqlSessionFactoryBuilder 实例的最佳范围是方法范围

2013-08-05 10:49:13 1091

原创 MyEclipse下安装插件方法(properties文件编辑器Propedit为例)

网上流传了很多安装插件的方法。在这里我只讲解一种方法.因为我认为这种方法有以下两个优点:第一、简单,方便安装;第二、对于自己安装的插件易于管理。我的myeclipse版本号为10.5,操作系统为win7安装方法详细步骤:我的MyEclipse路径是:D:\MyEclipse10,下面不再重复。从官网或其他地方下载所需安装插件的压缩包,我要安装Propedit,所以我

2013-08-03 21:05:26 1993

原创 EasyMock的简单使用

EasyMock总览下面,我将讲述如何使用JUnit和EasyMock框架来进行单元测试。在现实情况下,我们通常是在一些类里使用另外的一些类。在进行真正的测试之前,你可能需要做很多的工作,比喻说安置大量的环境代码,启动一种大型的、复杂的系统,可能是数据库、功过刘或者是某一种类型的IDE环境,你的预设环境代码需要是系统进入某种特定的状态,以便按照测试所需要的方法进行响应。但是这种工作不大可能

2013-08-02 23:10:43 1469

原创 一道关于打印M形状的问题

面试题,打印如下形状:

2013-07-27 19:00:05 757

原创 Dom4j保存数据乱码以及xml文件头编码格式改变的原因和解决方法

dom4j解析xml文档请参考:java解析xml的方式总结dom4j对xml文档进行增删改查后都要将数据写回原文件,有时会出现乱码。产生乱码原因:        此时,不管xml文档的编码格式是什么,读入内存的Document都是UTF-8格式的,如果不设定写回时的编码格式,将按照操作系统的编码格式(gb2312或gbk)写回文件。        如果 xml文档是UTF-8

2013-07-24 16:26:47 2732 2

使用JavaMail发送复杂邮件源代码

利用JavaMail进行邮件开发的发邮件的源代码,其中有四个例子,demo1/demo2是发送简单的邮件,demo3是发送一封html格式(正文为html格式,html代码中有一张图片)带附件的邮件。demo4是对demo3的补充,解决了附件的文件名乱码的问题

2014-02-09

javamail1_4_7

JMail使用Java开发邮件必不可少的组件。mail.jar是包含了所需要类的jar。在lib文件夹下有一系列jar包,这些jar包组成了mail.jar这个jar包。可以只使用一个mail.jar,也可以使用lib文件夹下jar进行组合,比如只做发送邮件可以选择mailapi.jar和smtp.jar 说明:jdk1.6之前项目中还需要一个activation.jar,在jdk1.6之后中自带了这个包。

2014-02-06

Junit 4.11.zip

Junit是Java进行单元测试的重要工具。 该压缩表中包括: --hamcrest-core-1.3.jar --junit-4.7.jar --junit-4.11.jar --junit-4.11-javadoc.jar --junit-4.11-sources.jar api文档只需要解压junit-4.11-javadoc.jar即可

2013-08-02

easymock-3.2.zip

EasyMock是Java进行单元测试的一个工具,和JUnit搭配使用,该版本为3.2,该文件包括了doc文档,api文档,示例文档和所需jar包等。 该文件是从官网上下载的,请大家放心下载。

2013-08-02

jdom-2.0.5.zip

jdom-2.0.5.zip包含了所需的jar包,以及api和示例代码,该文件是从官网下载的。

2013-07-24

jdom-1.1.1.zip

jdom-1.1.1.zip包含了所需的jar包,以及api和示例代码,该文件是从官网下载的。

2013-07-24

mysql-connector-java-5.1.22.zip

该压缩文件下包括了,java连接数据库的j驱动ar包和源代码。

2013-04-24

空空如也

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

TA关注的人

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