其它

其它

何为“山寨”框架

】“山寨”这个词儿现在太流行了!追根溯源也不知道是谁发明了这个词儿。不过,“山寨”这个词儿多用于实物类:比如山寨手机、山寨数码、山寨电视,就连人也有山寨的。上网浏览,“山寨”竟然和技术开发也挂上了勾。今天,在一个技术论坛里发现一篇帖子——“山寨”框架三宗罪。点击、回复的人很是不错。所以拿到这里来和大家分享!

下面是帖子原文:

刚看了个自制框架的帖子,其实之前这类帖子见得比较多,吵得也都挺厉害。好像总有人一边对提议“不要发明轮子”的同学挺反感,一边以发明家自居,把话扯到中国的软件业上去。之前还看到有人见到“只用SSH的公司“坚决不去。我想说说我的看法。

我觉得框架这东西,首先要明白为什么要用它——这是废话,但又是最重要的。真的有些人是不知道为什么用框架,乱用一通,产品代码乱七八糟。

然后是学习如何用好它,掌握框架后接着可能会发现它的不足,然后要是能够的话,再试试用用其它的框架,选一个最合适的。如果实在找不着你需要的框架了,这个时候如果公司允许,你再去改进某个框架,或者研读它的源代码参考着做个更好的。

否则,我觉得你的“发明”永远只是在你的作坊公司里用用、制造混乱而已。

用多线程来实现并发多连接

Java多个客户端同时连接服务端,在现实生活中用得比较多。同时执行多项任务,第一想到的当然是多线程了。下面用多线程来实现并发多连接。
[code]
import java.net.*;
import java.io.*;
public class ThreadServer extends Thread{ private Socket client;
public ThreadServer(Socket c) {
this.client=c; }
public void run() {
try {
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out=new PrintWriter(client.getOutputStream());
//Mutil User but can't parallel
while (true) {

Java SE 7语言大跃进 支持Strings状态转换

据外媒报道,Project Coin就是工作在发生细微语言变化的Java SE 7的OpenJDK的新称号。在Java.net最新的网络投票中,曾经问到究竟Project Coin中最有趣的新特性是什么。经过对大量Java程序员对此问题的看法进行分析之后,在这里,我将为大家揭露专业人士们提出的每个候选结果及原因。

候选结果有:

对Strings 转换状态的支持:

对于最求灵活多变喜好Strings的Java开发者,这可说的上是一个莫大的福音了,这个特性可以帮助他们避免较长的if-then-else造成的拥堵。但是,从我个人的角度,认为既然我们最求的是灵活性,那么Strings的性能将远远优于Emuns,所以没有必要寻找特别的转换装置。正因此,我并不十分推崇这个特性。

多异常捕获机制:

能够一次捕获多个相关异常纵然是很方便,但介于非检查异常和在框架多层结构中捕获异常时,这个功能有时反而会越帮越忙,所以我也不十分推荐这个特性。

对集合的方括号标记:

这项特性可以让集合像数列一般变得井井有条。但也有人争辩,正是因为集合的语法更加方便和自由才让大家更喜欢使用,这样把它和数列的语法同化,只会磨灭它原本的特性。因此,这项我也不很推荐。

带有类型推导的简洁构造器:

Eclipse快捷键汇总

作用域 功能 快捷键
全局 查找并替换 Ctrl+F
文本编辑器 查找上一个 Ctrl+Shift+K
文本编辑器 查找下一个 Ctrl+K
全局 撤销 Ctrl+Z
全局 复制 Ctrl+C
全局 恢复上一个选择 Alt+Shift+↓
全局 剪切 Ctrl+X
全局 快速修正 Ctrl1+1
全局 内容辅助 Alt+/
全局 全部选中 Ctrl+A
全局 删除 Delete
全局 上下文信息 Alt+?
Alt+Shift+?
Ctrl+Shift+Space
Java编辑器 显示工具提示描述 F2
Java编辑器 选择封装元素 Alt+Shift+↑
Java编辑器 选择上一个元素 Alt+Shift+←
Java编辑器 选择下一个元素 Alt+Shift+→
文本编辑器 增量查找 Ctrl+J
文本编辑器 增量逆向查找 Ctrl+Shift+J
全局 粘贴 Ctrl+V
全局 重做 Ctrl+Y

查看
作用域 功能 快捷键
全局 放大 Ctrl+=
全局 缩小 Ctrl+-

窗口
作用域 功能 快捷键
全局 激活编辑器 F12
全局 切换编辑器 Ctrl+Shift+W
全局 上一个编辑器 Ctrl+Shift+F6

Java和JavaFX的交互情况

从JavaFX官方博客上读了一篇文章,是讨论从Java代码中调用JavaFX类的方法。现在的情况是,JavaFX可以调用Java的类,基本没有什么限制,而反过来,Java却不可以随便调用JavaFX的类。这点可以从JavaFX项目的编译过程看出原因。以NetBeans为例,Build的过程是先编译Java代码(javac),然后才是JavaFX代码(javafxc),这样一来,Java代码不知道有JavaFX类,而JavaFX类却可以“看见”Java类。搜索一下我们可以发现,很多程序员都在寻找各种从Java中调用JavaFX类的方法。有一篇有趣的(英文)文章是介绍如何通过反向工程来分析JavaFX类的结构。就连那篇JavaFX官网上的文章,也采用了非标准的API来实现这一目的,而且也“保证”这种方法肯定会在下一版本中失效。

那么我们到底需不需要Java和JavaFX之间的这种互操作性呢?我觉得这种互操作性是很有必要的。如果两者可以近似于可以混用的程度,从长远上看,JavaFX可以有更大的生命力。试想一下运用MVC的设计模式(Model-View-Controller),我们可以用Java和JavaFX结合在一起开发应用:用Java来写“M”和“C”两部分,用JavaFX来写“V”部分,这将是非常有趣的一件事情。

如何使用 IDE 的内置功能来解决 Java ME MIDP 设备碎片问题

一次编写、随处运行的口号曾驱动了 Java 编程语言的流行,但在 Java Micro Edition (Java ME) 的世界中却并不适用。屏幕大小、颜色深度和内存等设备功能显著不同。您必须选择配置文件、配置和 J2ME API,而且会碰到我们所谓的设备碎片问题。本教程介绍如何使用 IDE 的内置功能来解决 Java ME MIDP 设备碎片问题。

需求

开始之前,需要在您的计算机中安装以下软件:

Java Standard Development Kit (JDK) 版本 5.0 或 6.0

带有 Mobility 包的 NetBeans IDE 6.0

注意:可以使用 Mobility Pack 附带的 Sun Java 无线工具包(Wireless Toolkit)部署此项目。不必使用其他软件来执行本教程介绍的基本概念。但是,如果需要部署到其他平台,我们建议您下载您要调整的适当仿真程序。可以使用以下几个最流行的 CLDC/MIDP 设备平台:

Nokia Series 40 SDKs for Symbian OS

Nokia Series 60 SDKs for Symbian OS

减轻开发工作量的表单数据存储处理方法

本文以Oracle数据库为例,介绍了在采用JSP技术开发WEB应用时一种简便通用的表单数据存储处理方法,以减轻开发工作量,同时提供了主要的程序代码。

引言

J2EE(Java 2 Enterprise Edition)技术已广泛应用在Web应用开发中,其中的JavaBean、Servlet技术为开发者提供了更为清晰的开发环境,使用JSP技术表现页面,使用Servlet技术完成大量的业务处理,使用Bean来存储数据及一些业务处理。在WEB应用中,业务数据存储到数据库中的处理工作经常很繁重,其中一种主要的形式就是表单数据存储到数据库,整个应用处理过程牵涉到大量的这种数据存储操作,对每个表单都要单独编写相应的数据存储程序,花费了开发人员大量的时间和精力。采用什么方法来减轻表单数据存储的开发工作量是值得研究的问题。

两种常见的表单数据存储处理方法

1、对每一表单都编写相应的程序代码

在JSP页面或JavaBean或Servlet中,使用request. getparameter()函数逐一提取表单提交的数据,或编写相应的JavaBean,使用setProperty方法将数据自动取到JavaBean中,然后生成SQL语句(insert,update,delete),最后执行executeupdate()函数完成数据表存储。

如何解决内存溢出的问题

一 调整 虚拟机参数

  二 立即 释放无用的对象

  三 利用序列化和反序列化技术

  下面是具体的代码实现
[code]
   package com.free;
  import java.io.File;

  import java.io.FileInputStream;

  import java.io.FileNotFoundException;

  import java.io.FileOutputStream;

  import java.io.IOException;

  import java.io.ObjectInputStream;

  import java.io.ObjectOutputStream;

  import java.math.BigInteger;

  import java.util.ArrayList;

  import java.util.List;

  /**

  * @author free

  *

  */

  public class OutMemorySolution {

  /***

Struts2框架之的类型转换

下面通过一个简单的例子来描述Struts2的类型转换.
准备如下:

1.在web项目中引入Struts2框架:将相应的Jar包(commons-logging-1.0.4.jar,freemarker-2.3.8.jar,ognl-2.6.11.jar,struts2-core-2.0.11.1.jar,xwork-2.0.4.jar其它的项目中用不上,所以不需要加入)拷贝到项目的WEB-INF/lib/目录中,然后在web.xml进行如下配置:
[code]
<?xml version="1.0" encoding="UTF-8"?>
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

index.jsp

如何对Oracle 11g for linux X86的SILENT进行安装

首先是检查系统硬件情况:

代码:
[code]
[root@enterprice64 ~]# grep MemTotal /proc/meminfo

MemTotal: 8178836 kB

[root@enterprice64 ~]# grep SwapTotal /proc/meminfo

SwapTotal: 8385888 kB

[root@enterprice64 ~]# free

total used free shared buffers cached

Mem: 8178836 5297744 2881092 0 122512 4773424

-/+ buffers/cache: 401808 7777028

Swap: 8385888 0 8385888

[root@enterprice64 ~]# df -k /dev/shm

Filesystem 1K-blocks Used Available Use% Mounted on

tmpfs 4089416 0 4089416 0% /dev/shm

[root@enterprice64 ~]# df -k /tmp

同步内容