`
laserdance
  • 浏览: 92518 次
  • 性别: 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 设备 在 Codewarrior 中添加新的 Flash 设备是 Codewarrior 开发板中的一个重要步骤,涉及到 Flash 设备的添加和配置。下面将详细介绍在 Codewarrior 中添加新的 Flash 设备的步骤...

    ionic2 codepush热更新使用

    在移动开发中,热更新是一种非常实用的技术,它能够实现在不重新提交应用商店的情况下更新应用的部分代码或资源,从而极大缩短修复bug或更新功能的时间。本篇文档将详细介绍如何在Ionic 2中使用codepush插件实现热...

    PFCG批量添加T-code利用Import from file(1)

    "从文件导入"的功能主要目的是允许外部应用程序或工具生成包含菜单定义的文件,并将其导入到SAP系统中,以此来快速构建或更新用户角色的菜单结构。这种操作对于那些需要定期调整或统一菜单布局的组织特别有帮助,...

    codewarrior使用说明文档中文

    4. **添加额外的文件页面**:可在此页面添加或删除项目文件。 5. **C/C++ 选项页面**:选择编译器选项,如启动代码级别和内存模型。 6. **PCLint 页面**:决定是否启用 PCLint 静态代码分析工具。 7. **完成创建项目...

    codemirror5.59.1

    版本 5.59.1 是 CodeMirror 的一个重要更新,包含了对已有功能的改进和新功能的添加。 首先,CodeMirror 提供了丰富的语言支持。它内置了多种语言的模式(mode),包括常见的 HTML、CSS、JavaScript,以及 Python、...

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

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

    VectorCast_(user_code)使用教程

    User Code是指在VectorCast测试框架中添加的用户自定义代码,它能够扩展VectorCast的基本功能,使得测试更加精确地针对特定项目或系统的需求。User Code可以用于创建测试用例、处理参数、模拟环境、甚至与硬件进行...

    Codewarrior for HCS12 V4.6.rar

    总结来说,Codewarrior for HCS12 V4.6是飞思卡尔HCS12系列微控制器开发不可或缺的工具,它通过集成的开发环境和强大的仿真调试能力,极大地提升了开发效率,降低了开发难度,使得开发者能够更好地利用HCS12的特性,...

    codemirror下载包

    无论你是开发在线编程学习平台,还是创建代码分享社区,甚至是为个人项目添加代码预览功能,Codemirror 都能成为你的得力助手。通过持续更新和社区支持, Codemirror 保持了其在在线代码编辑领域的领先地位。

    code128 excel 代码

    6. **交互功能**:进一步增强功能,例如,可以添加按钮或下拉列表让用户选择要编码的数据,或者编写事件处理程序,当数据改变时自动更新条形码。 7. **错误处理**:考虑到可能出现的问题,如无效数据、字体未安装等...

    添加open with code注册

    添加open with code注册

    802.11 Reason Code中文说明(全)

    在802.11网络中,"Reason Code"是无线客户端与接入点(AP)之间断开连接时使用的编码,这些编码提供了一个关于为何断开连接的原因的详细信息。本文将深入探讨这些Reason Codes的中文解释,以帮助用户更好地理解无线...

    codewarrior 10.7 补丁包,懂的。

    而"codewarrior 10.7 补丁包"是针对CodeWarrior 10.7版本的一次更新,旨在解决原有版本中存在的问题,优化性能,以及可能添加的新功能。 在软件架构师的角色中,理解并掌握这些补丁包的运用至关重要,因为它们直接...

    CCS(Code Composer Studio)软件中文教程

    **CCS(Code Composer Studio)软件中文教程** CCS,全称Code Composer Studio,是由Texas Instruments(TI)公司推出的一款强大的集成开发环境(IDE),专为基于TI微处理器和数字信号处理器(DSP)的嵌入式系统...

    Eclipse离线版插件CodeMix3

    CodeMix3的离线安装包包含了所有必要的组件,避免了在线安装过程中可能遇到的下载中断或速度慢的问题。首先,用户需要访问CodeMix的官方网站获取离线安装包,然后在Eclipse中通过“帮助”-&gt;“安装新软件”菜单,选择...

    DL.Code 操作手册初级版本

    - 通讯协议设置: 可以添加TCP客户端/服务端协议(红框四)或Profinet等特殊通讯协议(红框五)。 - 触发开始/结束条件: 可以设置光电前沿触发开始(Phase On)和光电后沿或成功读码结束(Phase Off)等条件。 - 通讯协议...

    PB中实现CODE128码使用源代码

    PB 中实现 CODE128 码使用源代码 CODE128 码是一种常用的条码格式,它由开始位、数据位、校验位和停止位组成。在 PB 中实现 CODE128 码需要了解 CODE128 码的基础知识和实现算法。 CODE128 码有三个版本:CODE128A...

    CODE V手册目录中英文对照

    - **Creating User-Defined Features 创建自定义属性**:这部分详细讲解了如何在CODE V中添加自定义功能,比如创建特定类型的元件、编写脚本来自动化某些任务等。 - **Parallel Processing Support for Local and ...

    VB6生成Code128Auto

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

Global site tag (gtag.js) - Google Analytics