`
laserdance
  • 浏览: 90498 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(随时添加更新)本人code中积累或总结

阅读更多

1 一定要注意资源使用以后要释放,比如数据库的连接,流的使用,一些API中明文显示的可以不关闭.
2 工作中一定要考虑到多线程的情况,为了避免多线程引起的exception,尽量不用全局变量,用局部变量.
3.文件路径中包含空格或其他符号时,如F:/Program Files/xxxxx  时,请用API中的URLDecoder编下码,如Strng path = URLDecoder.decode("F:/Program Files/xxxxx","UTF-8");
4.最优化的SQL Server查询分页语句
declare @pagesize int;
set @pagesize=10
declare @currentpage int
set @currentpage=3
--print @currentpage
select * from
(   select TOP (@pagesize) * FROM
( SELECT TOP ((@currentpage)*(@pagesize))   * from ipaddressmappings   ORDER BY id ASC ) as atable  
ORDER BY id DESC ) as btable  
ORDER BY id ASC
//======================
先按照id从小到大升序取出30条记录(3*10),也就是:id 在 1-30 之间的记录 (SELECT TOP 30   * from user_table   ORDER BY id ASC)

然后按照ID降序排列这30条记录,得到记录为id 在:从30到 1 

然后在这些30条记录中取出前10条记录:取得的记录为:id 在30-21之间。这就是我们需要的数据,但这时是按照降序排列的,不符合要求。

最后在重新排序得到最终我们需要的数据。id在21-30之间。

5 oracle order by 分页sql语句
select * from  mobileuser  where id in(select id from (select rownum rn,id from(select id ,expiretime from
mobileuser order by expiretime desc) where rownum<20) where rn>0) order by expiretime desc
6.
String[] test = new String[]{"test1","test2","test3","test4"};
System.out.prinitln(test.toString());
这时打印出来的是[Ljava.lang.String;@c17164
[代表数据的意思,Ljava.......是指String数组,后面是散列值
System.out.println(java.util.Arrays.toString(test));
这时会把这些值打印出来
[test1, test2, test3,test4]
还有一个方法,是说如果String数组里面还有数组的时候,可以用下面的方法打印出来

        Object[] test= new Object[] {
                "javaeye", new Object[] {}, 
                "wenth", new Object[] {},
                "laserdance", new Object[] { "wenth" },
                "javaeye", new Object[] { "wenth", "laserdance"} };
		System.out.println(java.util.Arrays.deepToString(test));


此时会显示什么呢

[javaeye, [], wenth, [], laserdance, [wenth], javaeye, [wenth, laserdance]]



7
今天偶然在javaeye上看到一个排序的问题,说如果用Map来存储时如果key重复会将后面的value替换掉,怎样避免这个问题.后来是用了OO的方式.即给它创建出一个对象来,然后在实现Comparable接口,将比较方法覆盖即可.

public class OOTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// 
//读文件,
		BufferedReader br = null;
		List<Account> lists = new ArrayList<Account>();
		try{
			br = new BufferedReader(new InputStreamReader(new FileInputStream("a.txt")));
			String line ="";
			while((line = br.readLine()) != null){
				String[] arrs = line.split(",");
				Account account = new Account(arrs[0],Double.parseDouble(arrs[1]));
				lists.add(account);
			}
			java.util.Collections.sort(lists);
			for(Account a : lists){
				System.out.println(a.name);
				System.out.println(a.deposit);
			}
			
		}catch(Exception ex){
			System.err.println(ex.toString());
		}
		
	}
	static class Account implements Comparable<Account>{
		String name;
		double deposit;
		public Account(String name,double deposit){
			this.name  = name;
			this.deposit = deposit;
		}
		@Override
		public int compareTo(Account account) { 
			//小到大
//			return this.deposit > account.deposit ? 1:(this.deposit == account.deposit? 0 : -1);
			//大到小
			return account.deposit > this.deposit ? 1:(account.deposit == this.deposit? 0 : -1);
		}
	}
}


a.txt文件里的内容是

小王,3234
小张,2342
小强,1030
小周,1020
小李,4564
小李,456444
阿斯顿,23444


最后输出结果是将a.txt按一定顺序再保存为一个新文件,保存大家都会,这里我只演示了用list存储的,最后console输出为

小李
456444.0
阿斯顿
23444.0
小李
4564.0
小王
3234.0
小张
2342.0
小强
1030.0
小周
1020.0


8
maven使用jetty6发布应用

mvn jetty:run


default是jetty5版本的,如果用jetty6可以在pom.xml中添加如下代码

<plugins>   
    <plugin>   
        <groupId>org.mortbay.jetty</groupId>   
        <artifactId>maven-jetty-plugin</artifactId>   
        <version>6.1.6</version>   
    </plugin>   
</plugins>  


9
这是由《程序员》杂志社评出的,刊登在《程序员》2007 年 3 月刊上。程序员的七种基本技能是:数组,字符串与哈希表、正则表达式、调试、两门语言、一个开发环境、SQL 语言和编写软件的思想。
10

   for(int i = 0; i < 100;i++){
   //do some work
  }
  for(int i =100; i>0;i--){
    //do some work
  }


问上面这两种循环哪一个方式要快一些,google一下,发现原来是和底层的C有关,据高手说是反编译以后--比++少了一条CPU的指令,所以--比++用时要少.今天真是学到东西了,大开眼界,还有的仁兄说是因为和100比较不如和0比较来的快是因为只要判断一下i的第一位,即符合位即可.如果和100比较,就得用binary的多位进行比较才可以,所以比较耖时

11.隐藏图片地址的小技巧:
假如您有一图片不希望被别人盗链,请 用如下方法,以Java中为例

  <img src="/images/logo.png" alt="logo" />


如果我们像上面写图片地址,则别人就可以直接下载这个地址或盗链该图片,这里我们使用下面代码来阻止别人查看图片真实地址

  <img src="./images.jsp?image=logo" alt="logo"/>


我们另新建一个images.jsp文件,里面的内容为

   <%
      String filepath = request.getParameter("image");
      response.sendRedirect("/images/"+filepath+".png");
   %>


此时我们再右击图片地址,会看连接地址为images.jsp?image=logo,从而达到隐藏图片真实地址的目的。
12  xml中无效字符的转义

&lt;    <         小于号
&gt;   >         大于号
&amp;    &     和
&apos;    '     单引号
&quot;     "    双引号

13.

用远程登陆客户端登陆linux
进入tomcat/logs/文件夹下
键入指令:tail -f catalina.out

这样就可以与本地电脑一样查看TOMCAT的控制台了

 14

log4j 输出的日志编码与平台有关吧,但我想出输出 UTF-8 的日志文件呢。可以在log4j.properties文件里用 encoding=UTF-8

log4j.appender.FILE=org.apache.log4j.FileAppender   
log4j.appender.FILE.Append=false   
log4j.appender.FILE.File=file.log   
log4j.appender.FILE.encoding=UTF-8   
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout   
log4j.appender.FILE.layout.ConversionPattern=%d - %c -%-4r [%t] %-5p - %m%n  

15

MySQL导出的SQL语句在导入时有可能会非常非常慢,经历过导入仅45万条记录,竟用了近3个小时。在导出时合理使用几个参数,可以大大加快导 入的速度。

-e 使用包括几个VALUES列表的多行INSERT语法;
--max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小;
--net_buffer_length=XXX  TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行。

注意:max_allowed_packet和net_buffer_length不能比目标数据库的设定数值 大,否则可能出错。

首先确定目标库的参数值

mysql>show variables like 'max_allowed_packet';
mysql>show variables like 'net_buffer_length';

根据参数值书写mysqldump命令,如:
E:\eis>mysqldump -uroot -p eis_db goodclassification -e --max_allowed_packet=1048576 --net_buffer_length=16384 >good3.sql

之前2小时才能导入的sql现在几十秒就可以完成了。

  

1
0
分享到:
评论

相关推荐

    在codewarrior中添加新的flash

    在codewarrior中添加新的flash

    ionic2 codepush热更新使用

    ionic2中使用codepush插件实现热更新功能,内含功能实现流程,插件下载以及实现代码

    应用实时更新云服务CodePush.zip

    CodePush 是微软开发的,可以实时更新 React Native 和 Cordova 应用。CodePush 是提供给 React Native 和 Cordova 开发者直接部署移动应用更新给用户设备的云服务。CodePush 作为一个中央仓库,开发者可以推送更新...

    在vue项目中使用codemirror插件实现代码编辑器功能

    在vue项目中使用codemirror插件实现代码编辑器功能(代码高亮显示及自动提示),具体内容如下所示: 1、使用npm安装依赖 npm install --save codemirror; 2、在页面中放入如下代码 &lt;textarea ref=mycode class...

    添加open with code注册

    添加open with code注册

    VB6生成Code128Auto

    代码是一个类文件下载后添加到VB6工程中可以直接调用。 需自己定义: DCPrint As PictureBox '临时打印显示区 可生成的条码类型: 'Code128A = 0 'Code128B = 1 'Code128C = 2 'EAN128 = 3 'Code128Auto = 4

    CodePush自定义更新弹框及下载进度条

    CodePush是一个微软开发的云服务器。通过它,开发者可以直接在用户的设备上部署手机应用更新。CodePush相当于一个中心仓库,开发者可以推送当前的更新(包括JS/HTML/CSS/IMAGE等)到CoduPush,然后应用将会查询是否...

    React Native用Code Push 实现热更新

    简单的用code push实现React Native 热更新的例子。具体安装步骤可以参考React http://blog.csdn.net/u011886447/article/details/78715407 -- React Native用CodePush实现热更新(一) 和 ...

    给Photoshop添加二维码插件QR Code Generator V2.2.rar

    需要安装到PS的滤镜目录中,在启动PS后从从滤镜EVEnX中调出该滤镜,支持CS6以下版本,如果你的PS版本较新,你需要在安装的时候首先按照该二维码滤镜软件默认的路径进行安装,然后去该路径下复制EVEnX到PS CC的插件...

    转:MTK Pixtel_MMI_Platform_Source_Code_Training 及学习总结

    MTK Pixtel_MMI_Platform_Source_Code_Training 及学习总结 MTK Pixtel_MMI_Platform_Source_Code_Training 及学习总结 MTK Pixtel_MMI_Platform_Source_Code_Training 及学习总结

    参考网上的关于code128 c#版的源码,作者不详,这是本人修改版,可任意使用

    参考网上的关于code128 c#版的源码,作者不详,这是本人修改版,可任意使用 如果有改的能实现下面提到的希望实现功能,希望发给我一份,表示感谢! /// 修改说明 /// 1,添加属性:是否条码图形在下方显示条码文字,...

    VS Code 中文文档

    VS Code 中文文档 VS Code 中文文档 VS Code 中文文档

    codemirror, 用于CodeMirror在线编辑器的Emmet插件.zip

    codemirror, 用于CodeMirror在线编辑器的Emmet插件 用于 CodeMirror 4.x 的 Emmet要为CodeMirror编辑器添加Emmet支持,只要在CodeMirror脚本之后将 dist/emmet.js 作为 [removed] 标签添加到HTML页面。 这里脚本

    EF Code First demo 可运行的

    EF Code First demo 可运行的 关于什么是ORM,什么是EF,这里不做解释,自己查资料,在EF系列的最后会对ORM和EF做总结。 1)在VS中新建项目(使用VS2010),项目名称为"MyEF。"控制台应用程序,Winform,以及Web程序都...

    codewarrior破解license

    codewarrior破解license

    Asp代码 Code128条码生成

    Code128 可输出条码图片,支持URL引用,支持单独A/B/C字符集和A/B/C字符集混合编码(Auto)模式。 aspjpeg.rar是ASPJPG组件,条码输出需要ASPJPG组件支持。 code.jpg是背景图片,不能缺少。 gulim.ttc条码文字字体,...

    VSCUnity:Unity3D编辑器插件,使Unity项目与Visual Studio Code兼容

    添加到/ Assets / Editor / VCSUnity,然后从“ VS Code”菜单中选择“为Visual Studio Code更新项目”。 选择“将Unity符号突出显示到Visual Studio Code”以使用所有特定于Unity的类型更新Visual Studio Code的...

    Writing Solid Code.part1

    CODE系列 2-1 Writing-Solid-Code.part1

    TAL Bar Code ActiveX Control控件

    TAL Bar Code ActiveX控件 向Access, VB, Web pages, C++, Excel和其他程序中添加条形码打印功能。 &lt;br&gt; Bar Code ActiveX from TAL 向Windows应用程序添加条形码,包括网页,数据库报表和标签,产品包装,...

Global site tag (gtag.js) - Google Analytics