手机版
你好,游客 登录 注册 搜索
rss订阅 手机访问 
Linux编程
Java字符串与字符集的基本概念

     Java String是Java API中最常用的类,本文和大家谈谈String类的内部原理,同时描述ISO-8859-1字符集在字符串处理中的独特用处。

  Java字符串的内部编码

  String类内部管理着一个char类型的数组,Java API是这样描述char基本类型的:

  char 数据类型(和 Character 对象封装的值)基于原始的 Unicode 规范,将字符定义为固定宽度的 16 位实体。

日期:12/30/2009 11:40:53 作者:darxin
Java如何通过Google map api实现地址解析

  地址解析就是将地址(如:广东省广州市)转换为地理坐标(如经度:113.26442,纬度:23.129074)的过程。google map api提供两种方法实现地址解析。

  第一种,是通过使用 GClientGeocoder 对象来实现,大家可以参考google map api的相关文档,以下是摘自google的相关代码

  var map = new GMap2(document.getElementById("map_canvas"));

日期:12/29/2009 11:22:37 作者:coolzhi
使用Java播放声音文件

  因为java强大的类库,解决这个问题并不困难,只是API的调用问题而已。不过,不同的调用也有区别。

  很多人讲要使用JFM,不过我懒得去安装,所以另寻他法。网上提供最多的方法就是利用Applet中的AudioClip来解决,代码很简单,如下:

  public void play(String Filename)//Filename是乐曲名称或说路径(不过“路径”我没尝试)

日期:12/28/2009 13:30:19 作者:Java编辑
上传多个文件到Oracle数据库
import java.sql.*;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.jspsmart.upload.*;
import com.mdcl.sc.common.dao.DAOUtils;//dao
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;
import java.net.*;
import java.applet.*;
/**
 * @author hanxr
日期:12/27/2009 07:11:26 作者:hxirui
实现文件下载的Java代码

实现文件下载的Java代码

//这是实现下载类(servlet),具体思路代码如下:
//也可连接数据库
package com.message;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

日期:12/27/2009 07:06:34 作者:zhuseahui
Java类的初始化顺序内容简介

  我把Java类的初始化顺序分为两部分。第一部分是类的初始化,第二部分是对象的初始化。

  在初始化之前JVM必须先把该类的字节码加载到内存中来。这时不管创不创建对象都会马上执行类的初始化:

  执行静态初始化表达式(如static int a = 10)和静态初始化块(即static{}中的内容),注意两者按在源代码中的先后顺序执行。

日期:12/26/2009 07:35:57 作者:Java编辑
简易的Java浏览器之开发感想
  到目前为止,我刚刚接触了两个上千行的程序。在这期间,有为了写代码而焦虑的时候,有为实现某个了功能而欣慰的时候。总之,情感上总会出现大起大落,但是自从听过那个网络小说之后,我发现我逐渐喜欢上了开发这件事情。虽然现在我还不能够像一些牛人那样,每年写好几万行的代码,并且每一行的代码都很有意义。但是我相信,只要自己努力,一定会有所收获的,除非我真的是不适合软件开发这个行业。
日期:12/26/2009 07:33:22 作者:风雨中走过
Cygwin编译ARM Linux内核

~~~make menuconfig找不到头文件

scripts/kconfig/lxdialog/dialog.h:32:20: curses.h: No such file or directory

在编译内核用make menuconfig时出现:curses.h:No such file or directory
  安装glibc-devel、Utils/ncurses、Devel/libncurses-devel这3个包

默认Cygwin没有glibc安装文件,暂时不装。

日期:12/25/2009 07:17:59 作者:oyez
Java中char到底是多少字节?

  先弄清楚:

  1:“字节”是byte,“位”是bit ;

  2: 1 byte = 8 bit ;

  char 在java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。

日期:12/24/2009 09:46:06 作者:Java编辑
Linux环境下使用Eclipse开发C++动态链接库程序

Linux中也有类似Windows中DLL的变成方法,只不过名称不同而已。在Linux中,动态链接叫做Standard Object,生成的动态链接文件为*.so。详细请参考相关文档。

开发环境:Eclipse 3.4.2

G++:4.3.2

1. 创建动态链接库

(1)在Eclipse中创建新的C++工程

File->New->Project->C++->C++ Project,选择Shared Library。

日期:12/23/2009 08:50:41 作者:wangjingfei
Java滑块JSlider的使用方法

Java滑块JSlider的使用方法

package swimg;

import java.awt.BorderLayout;
import java.awt.Container;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;

日期:12/22/2009 18:35:22 作者:g882
Java进度条JProgressBar使用方法
Java进度条JProgressBar使用方法

package swimg;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

日期:12/22/2009 18:34:24 作者:g882
Java为菜单栏添加快捷键

Java为菜单栏添加快捷键

package swimg;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;

日期:12/22/2009 18:33:00 作者:g882
Java组合框

Java组合框

package swimg;

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JComboBox;

日期:12/22/2009 18:32:03 作者:g882
Java格式化时间

Java格式化时间

package Date;

import java.text.SimpleDateFormat;
import java.util.Date;

public class FormatDate {
public static void main(String[] args) {

日期:12/22/2009 18:31:08 作者:g882
Java格式化数字
Java格式化数字

import java.text.NumberFormat;
import java.util.Locale;

public class FormatData {
public void showMoney(double money,Locale locale){
   NumberFormat num=NumberFormat.getCurrencyInstance(locale);
   String str=num.format(money);
   System.out.println("The money is "+str);

日期:12/22/2009 18:30:15 作者:g882
Java日历源程序

Java日历源程序

package Date;

import java.util.Calendar;

public class CalenderDemo1 {
public static void main(String[] args) {
   Calendar calendar=Calendar.getInstance();

日期:12/22/2009 18:29:06 作者:g882
Java中Calendar的使用方法

Java中Calendar的使用方法

package Date;

import java.util.Calendar;
import java.util.Date;

public class CalendarDemo {
public static void main(String[] args) {
   Calendar calendar=Calendar.getInstance();

日期:12/22/2009 18:28:06 作者:g882
Java中Date类的使用

Java中Date类的使用

package Date;

import java.util.Date;

public class DateDemo {
public static void main(String[] args) throws InterruptedException {
   Date date1=new Date();

日期:12/22/2009 18:27:00 作者:g882
Java分析字符串功能

Java分析字符串功能

package Date;

import java.util.Scanner;
import java.util.StringTokenizer;

public class Test {
public static void main(String[] args) {
   System.out.println("请输入需分析的字符串:");

日期:12/22/2009 18:26:01 作者:g882
Java颜色选择器

Java颜色选择器

package swimg;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import javax.swing.BorderFactory;
import javax.swing.JColorChooser;

日期:12/22/2009 18:23:46 作者:g882
Java表格组建的使用

Java表格组建的使用

package swimg;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class chart {

日期:12/22/2009 18:21:59 作者:g882
Java实现太极八卦的绘制

  Java实现太极八卦的绘制

  package paint;
  import javax.swing.JFrame;
  public class Graph2DG extends JFrame{
  public Graph2DG(){
  G2DPanel jp=new G2DPanel();
  getContentPane().add(jp);
  setSize(200,200);
  setVisible(true);
  }

日期:12/22/2009 18:19:59 作者:g882
如何防止JAVA程序源代码被反编译

我们都知道JAVA是一种解析型语言,这就决定JAVA文件编译后不是机器码,而是一个字节码文件,也就是CLASS文件。而这样的文件是存在规律的,经过反编译工具是可以还原回来的。例如Decafe、FrontEnd,YingJAD和Jode等等软件。下面是《Nokia中Short数组转换算法》

类中Main函数的ByteCode:

0 ldc #16
2 invokestatic #18
5 astore_1
6 return

日期:12/22/2009 09:53:57 作者:JAVA编辑
一个Linux C做的TCP文件传输的代码

贴一个Linux C做的TCP文件传输的代码

简要介绍一下代码结构:
~project-----------fileclient.c
~           |-----------fileserver.c
~           |-----------Makefile
~           |-----------common-----------common.c
~                                        |-----------common.h

编译方法: 进入project目录,make(有兴趣的话可以看看我的Makefile,其实写的不通用)

日期:12/21/2009 16:14:07 作者:wuxiaoxing
Linux TCP协议的基础编程模型

4.接下来,客户端创建套接字描述符,并且调用connect向服务端提交连接请求。服务器端接收到客户端连接请求后,调用accept接受,并创建一个新的套接字描述符与客户端建立连接,然后原套接字描述符继续侦听客户端的连接请求。

5.客户端与服务器端的新套接字进行数据传送,调用write或send向对方发送数据,调用read或recv接收数据。

6.在数据交流完毕后,双方调用close或者shutdown半闭套接字。

日期:12/21/2009 16:11:03 作者:weitian_liang
Java使窗口最小化为图标

最小化时隐藏,在图标上点右右键选择显示窗口时,让窗口显示出来

  import java.awt.AWTException;

  import java.awt.Image;

  import java.awt.MenuItem;

  import java.awt.SystemTray;

日期:12/21/2009 13:41:54 作者:Java编辑
C++中友元的一些总结

  我不知道关于C++关键字friend的全部议题有多少,我只对我了解的做个小结。

  1,friend申明一个友元

  friend一般为一句申明式,它位于一个类的内部,它申明一个类或者一个函数为该类的友元。friend并不是定义一个成员函数,所以 friend放在public,protected或者private前都可以,完全是一样的。做为一个友元,即表示在该类或者该函数内部可以访问这个类的私有成员,你和朋友之间是不是应该没有什么隐藏的呢。例子:

日期:12/21/2009 13:40:23 作者:pfan
Ubuntu下编写python c++ 扩展

Ubuntu下python 的c++扩展编写 比 php简单很多

phpize 也不是很好用的一个东西

编写一个 python mod hello world

日期:12/21/2009 09:02:57 作者:farmer1992
Linux下用内存管理器的钩子函数跟踪内存泄漏
作为Linux下的C程序员,我总是习惯在单元测试通过之后,再用valgrind把程序跑一下,看看有没有内存泄漏和内存越界等问题。可惜的是,有时valgrind并不能很好的工作,像基于DirectFB的多进程程序在valgrind下是跑不起的, 这时我们可以通过内存管理器的钩子函数来跟踪内存泄漏。
日期:12/20/2009 18:40:19 作者:李先静
Linux Shell 下的输出重定向

Linux Shell 环境中支持输入输出重定向,用符号<和>来表示。0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>a.txt 表示将错误信息输出到文件a.txt中。

同时,还可以在这三个标准输入输出之间实现重定向,比如将错误信息重定向到标准输出,可以用 2>&1来实现。

日期:12/20/2009 08:15:26 作者:Linux 编辑
JRebal(原名JavaRebel)破解小记
JavaRebel是一个工具,主要是用于热加载,比如说在Tomcat之类的应用服务器中,更新了class或者某些资源文件,使用了JRebel之后,就不需要重新启动应用服务器。这对于开发的人来说,是特别方便的。当然Java也提供了HotSpot的JVM,但是如果你修改的类中有方法名称变动的话,HotSpot就无能为力了,必须要重要启动应用服务器。
这里有一点先声明一下,本文只是破解仅限于学习和研究使用,勿用于其他用途。
日期:12/19/2009 17:00:09 作者:云自无心水自闲
JRebel 3.0 M1 破解版下载及破解手记

jrebel-3.0-M1-cracked.zip 1.4MB 直接下载使用即可 不会过期 已修正编译器级别 支持 JDK 1.4

直接下载使用即可.

破解工具:

JD-GUI

日期:12/19/2009 16:50:48 作者:刘长炯
两招提高Struts2开发生产力(2008.11.14更新)!

2008.11.14更新: 加入struts.i18n.reload和修改一天工作为8小时(不算加班,加班2小时一般不算工资),加入了对无法显示行号的传言的验证.

我们知道开发Java EE Web应用最大的弊病当属Redeploy时候无奈的等待. 这是对成本的最大浪费. 假设一个公司有100名开发人员, 每人每小时需要reload应用10次(实际上可能不止十次), 每次耗费10秒, 而每个程序员每小时的薪酬是50元, 那么我们可以计算一下多出的时间:

日期:12/19/2009 16:43:34 作者:刘长炯
Java 按字节截取字符串算法

} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

unicode:用两字节编码汉字
在XP和Ubuntu 9.04下的尝试结果是4字节,好像是ucs

日期:12/19/2009 10:31:31 作者:Java编辑
Java截取带html标签的字符串,再把标签补全(保证页面显示效果)

一般是用在字符串中有html标签的截取.

如: 后台发布用了在线编辑器, 前台显示内容要截取的情况.

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

日期:12/19/2009 10:30:27 作者:vnplalvyulin
Java Split截取字符串的各种方法示例

public class SplitDemo2 {

 public static String[] ss = new String[20];

 public SplitDemo2() {

  // String s = "The rain in $$$$ Spain falls mainly in the plain.";
  String s = "XXXXX$$$$YYYYY";
  // 在每个空格字符处进行分解。
  // ss = s.split(" ",4);

日期:12/19/2009 10:29:16 作者:victorwujava
Java按字节截取字符串
在应用开发中,为了页面齐整,把内容较长的标题截取成等长的字串,如果在标题中命名有英文,数字,汉字,但Java默认的截取方法是按字符截取的,一个汉字跟一个英文字母以及数字都默认为一个char,按这个种方法截取后的字串七长八短很不齐整。 如果改用按字节截取会好很多,因为一个汉字会看到两个字节,所以可能会存在一个字节的差异,当然一个汉字是不会被分成两半的. 详情见下面代码:
日期:12/19/2009 10:26:19 作者:Java编辑
Java聊天窗口的实现

  编写一数据报通信程序,实现简单的聊天功能。

  “聊天内容”和“输入文本”分别为当前聊天的历史信息和当前要传送出去的聊天文本。“确定”、“清空”、“退出”三个按钮分别实现发送当前聊天文本、清空当前聊天文本和退出系统的功能。import java.awt.Font;

  import java.awt.event.ActionEvent;

日期:12/18/2009 16:36:47 作者:Linux编辑
Java Double的精度问题

 java.text

  类 DecimalFormat

  java.lang.Object

    java.text.Format

      java.text.NumberFormat

日期:12/18/2009 16:36:13 作者:Linux编辑
Java EE 项目中异常处理

  我们在定义一个新的异常类时,必须提供这样一个可以包含嵌套异常的构造函数。并有一个私有成员来保存这个“起因异常”。java 代码

  public Class ExceptionB extends Exception{

  private Throwable cause;

  public ExceptionB(String msg, Throwable ex){

日期:12/18/2009 16:32:21 作者:Linux编辑
Linux操作系统的内核解读入门

  针对好多Linux爱好者对内核很有兴趣却无从下口,本文旨在介绍一种解读linux内核源码的入门方法,而不是解说Linux复杂的内核机制;

  一.核心源程序的文件组织:

  1.Linux核心源程序通常都安装在/usr/src/linux下,而且它有一个非常简单的编号约定:任何偶数的核心(例如2.0.30)都是一个稳定地发行的核心,而任何奇数的核心(例如2.1.42)都是一个开发中的核心。 本文基于稳定的2.2.5源代码,第二部分的实现平台为 Redhat Linux 6.0。

日期:12/18/2009 16:30:48 作者:Linux编辑
对Linux内核进行压力测试

  Linux 标准测试的设计过程

  自动软件测试让您可以在一段时间内运行相同的测试,从而确保您所比较的内容具备真正的可比性。在本文中,Linux Test Project 团队的成员们分享了他们对 Linux? 内核进行压力所使用的测试的方法、原理以及脚本和工具。

日期:12/18/2009 16:29:25 作者:Linux编辑
Linux内核参数修改

  由于Linux的内核参数信息都存在内存中,因此可以通过命令直接修改,并且修改后直接生效。但是,当系统重新启动后,原来设置的参数值就会丢失,而系统每次启动时都会自动去/etc/sysctl.conf文件中读取内核参数,因此将内核的参数配置写入这个文件中,是一个比较好的选择。

  首先打开/etc/sysctl.conf文件,查看如下两行的设置值,这里是:

日期:12/18/2009 16:28:42 作者:Linux编辑
Linux内核中的likely和unlikely

    今天同事问我内核中likely()和unlikely()实现机理。我当时说这是Linux内核使用gcc编译器进行条件分支优化,具体细节没有深究。

   晚上回来查看内核源码和google,进一步认识了这两个宏作用。

日期:12/17/2009 09:56:02 作者:chinaunix
Linux下SIGPIPE信号及其处理
在Linux下写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号。
这个信号的缺省处理方法是退出进程,大多数时候这都不是我们期望的。因此我们需要重载这个信号的处理方法。
日期:12/16/2009 08:55:52 作者:mckeyzhang
Ubuntu 9.04下CUDA编程起步

  看书归看书,写程序是另外一件事情,上一篇文章里把环境搭建起来了,可是我还是不知道怎么创建CUDA工程,怎么动手开始写程序。还好CUDA提供了一个SDK,里面有很多的实例可以供我们参考,于是乎,我的第一个CUDA程序就从这里开始了。

  CUDA SDK的实例都在src目录下,每一个实例都有一个自己的目录,例如deviceuery,在它的目录下还有一个编译时候使用的Makefile文件,这是编译单个项目的。现在我们将所有实例都编译一遍,在CUDA_SDK根目录下运行sudo make之后,可以在 <CUDA_SDK_HOME>/bin/linux/release下看到编译之后的可执行程序,运行即可看到结果。

日期:12/15/2009 11:39:52 作者:Terry
从Linux内核中学到的编程技巧
1构建泛型宏 (./linux/include/linux/kernel.h)
#define min(x, y) ({				\
typeof(x) _min1 = (x); \
typeof(y) _min2 = (y); \
(void) (&_min1 == &_min2); \
_min1 < _min2 ? _min1 : _min2; })

大家看了就明白是什么意思了。但是我还有几点疑问:
(1)
(void) (&_min1 == &_min2);这行代码是用来干什么的?
(2)为什么{}的外面要加(),不加的时候编译是不通过的,具体是什么原因?
日期:12/15/2009 09:09:07 作者:dylan
Linux下命令行程序设计--getopt_long()函数使用说明

1. Linux Command-line Conventions ( Linux 命令行约定)

几乎所有的 GNU/Linux 程序都遵循一些命令行参数定义的约定。程序希望出现的参数可以分成两种:选项( options or flags )、其他类型的的参数。 Options 修饰了程序运行的方式,其他类型的参数则提供了输入(例如,输入文件的名称)。  

对于 options 类型参数可以有两种方式:

日期:12/15/2009 09:07:24 作者:dylan
Linux内核中常用的汇编

AT&T 汇编语言的相关知识

在 Linux 源代码中,以 .S 为扩展名的文件是“纯”汇编语言的文件。这里,我们结合具体的例子再介绍一些 AT&T 汇编语言的相关知识。

1 . GNU 汇编程序 GAS ( GNU Assembly 和连接程序

当你编写了一个程序后,就需要对其进行汇编( assembly )和连接。在 Linux 下有两种方式,一种是使用汇编程序 GAS 和连接程序 ld ,一种是使用 gcc 。我们先来看一下 GAS 和 ld:

日期:12/15/2009 09:05:59 作者:dylan
内容分类