java api是什么?
API=Java Application Interface 就是指那套基本类库。 没有那套库,没有这套编程接口,你编写应用程序将不是一般地困难。 作为Sun开发的Java程序,用于Java编程人员使用的程序接口,并不是说使用Java和接口有关,而是表示Java所提供的现成的类库,供编程人员使用。这与 Win32 中的 dll 文件有点像,封装了好多函数,只暴露也函数名、参数等信息,不提供具体实体,暴露出来的这些就称为API了。也就是说 Java 也是封装了好多的方法,提供了些方法名和参数等信息,便于别人使用啊。由于Java是开源的,还可是看到类库中方法的具体实现。
JAVA是什么
Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台.Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java分为三个体系J2SE(Java2 Standard Edition),J2EE(Java 2 Platform,Enterprise Edition),J2ME(Java 2 Micro Edition)。
它是个面向网络的程序设计语言,用来让程序员创建应用程序,这些应用程序可以通过网络下载,而且可在任何计算平台上安全地运行。如果再加上万维网和公司内部网体系,你将会拥有一个标准的网络计算环境,Java作为一个分布式的,面向对象的程序设计语言,可以让位于任何地方的任何计算机应用网络上的应用程序。
如果在商业角度看待Java,Java是个时髦话。同不少已经有20年历史的其他程序设计语言相比,Java吸收了计算机科学领域的各种最新成果,另外一方面,由于Java还比较年轻,它缺少诸如Visual Basic 或C++那样的丰富的编程工具的支持。
同C++一样, Java是个面向对象的语言,这就意味着软件可以以部件的形式编制,为了满足某种任务,软部件可以互相配合。运行Java,不必非得在网络环境中进行,Java同其他传统的诸如COBOL或 Basic这样的程序设计语言一样,可以创建独立运行的应用程序。只不过Java对互联网上的应用开发更拿手。
Java适宜于互联网的开发应用,其中一个原因是它使用了虚拟机,虚拟机是个用来解释Java指令的软件包,可以让Java在任何机器上运行,比如有运行在Mac或 UNIX下的虚拟机软件包。虚拟机并不是Java语言本身,它是个为特定机器编写的解释器软件。Java的虚拟机策略就相当于世界语,这是个人造的国际语言,目的是使得不同语言之间的翻译和沟通更加容易。
要称作一个通用的计算机语言,Java是最适合不过的,这意味着它可以在所有的计算机上运行,(尽管需要为各种机器编写Java虚拟机软件),可以根据需要提供软部件,并且具有内在的安全机制。
用Java编写的操作系统,称为JavaOS,是个基于语言的操作系统,它看起来似乎没有机会来占据PC市场。但是它为Microsoft Windows和MacOS未来的发展提供了线索。它也许将来会应用到各种仪器设备中,包括电视遥控器和温控器。
基于网络的内容供应商对Java技术很感兴趣,因为它增加了交互性和动画功能,这是吸引观众的关键因素。对于软件商来说, Java有希望可以让人们采用租用软件的方式,诸如字处理器或者电子表格软件,而无需购买软件,这就改变了目前的商业模式。
Java也使得网络计算机成为现实,无须硬盘的,价值500美元的PC
将可以取代Wintel 结构的计算机。所有这一切都显出Java的重要性,它的支持者把它视作对付微软和盖茨的最后的和最好的希望,这就是为什么一些人对Java表现出狂热的崇拜的原因。
解析java操作mysql存储过程
mysql存储过程每个DBA都需要掌握的,下面就为您介绍java操作mysql存储过程的例子,如果您对mysql存储过程方面感兴趣的话,不妨一看。
1、新建表test
以下是代码片段:
create table test(
field1 int not null
)
TYPE=MyISAM ;
insert into test(field1) values(1);
2、删除已存在的存储过程
-- 删除储存过程
| 以下是代码片段: delimiter // -- 定义结束符号 drop procedure p_test;// |
3、mysql存储过程定义
以下是代码片段:
create procedure p_test()
begin
declare temp int;
set temp = 0;
update test set field1 =temp;
end
//
4、调用方法
以下是代码片段:
call p_test();
import java.sql.*;
public class Test Conn{
private Connection getConn(){
Connection conn = null;
try {
Class.forName("org.gjt.mm.mysql.Driver");
try {
conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&
characterEncoding=GBK","root","ntsky");
} catch (SQLException e1) {
e1.printStackTrace();
}
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
return conn;
}
public void testC() {
Connection conn = getConn();
ResultSet rs = null;
CallableStatement cs = null;
String a = null;
try {
CallableStatement cStmt = conn.prepareCall("{call p_test()}");
cStmt.executeUpdate();
} catch (Exception e) {
System.out.println("hahad" + e.getMessage());
} finally {
try {
conn.close();
} catch (Exception ex) {
System.out.println("ex : " + ex.getMessage());
}
}
}
public static void main(String[] args) {
new TestConn().testC();
}
}
以上java操作mysql存储过程示例的介绍。
Java报表工具参数下拉框的值通过公式编辑
我们在使用Java报表的过程当中,经常会有对年报、月报、日报的制作,需要通过下拉框选择查询的年和月。现在报表工具的年份设置,通常是连续的从某年至今年,而月份是固定的12个月。像这种情况怎样来定义参数下拉框的值呢?您可能会使用自定义来达到目的,但这种方法需要手动输入所需要的值,比较繁琐。此时可以使用公式来定义下拉框的值。具体设置如下
1. 定义两个参数:year和month
2. 参数控件设置
设置参数year的控件类型为下拉框,使用公式编辑,输入公式:
range(1997,year(today()))
设置参数month的控件类型为下拉框,使用公式编辑,输入公式:range(1,12)
3.查看效果
保存模板,并分页预览
Java实现右键弹出菜单例子
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//左键弹出菜单
public class JPopMenuDemo extends JFrame {
JRadioButtonMenuItem items[]; //菜单项
Color[] colors={Color.blue,Color.pink,Color.yellow,Color.red,Color.orange}; //颜色数组
JPopupMenu popupMenu; //弹出菜单
public JPopMenuDemo()
{
super( "右键弹出菜单" ); //调用父类构造函数
ChangeColorAction action = new ChangeColorAction(); //菜单项事件处理
String[] str = {"Blue","Pink","Yellow","Red","Orange"}; //菜单项名称
ButtonGroup colorGroup=new ButtonGroup(); //实例化按钮组
popupMenu=new JPopupMenu(); //实例化弹出菜单
items=new JRadioButtonMenuItem[5]; //初始化数组
for (int i=0;i items[i]=new JRadioButtonMenuItem(str[i]); //实例化菜单项
popupMenu.add(items[i]); //增加菜单项到菜单上
colorGroup.add(items[i]); //增加菜单项到按钮组
items[i].addActionListener(action); //菜单项事件处理
}
addMouseListener(new MouseAdapter(){ //窗口的鼠标事件处理
public void mousePressed( MouseEvent event ) { //点击鼠标
triggerEvent(event); //调用triggerEvent方法处理事件
}
public void mouseReleased( MouseEvent event ) { //释放鼠标
triggerEvent(event);
}
private void triggerEvent(MouseEvent event) { //处理事件
if (event.isPopupTrigger()) //如果是弹出菜单事件(根据平台不同可能不同)
popupMenu.show(event.getComponent(),event.getX(),event.getY()); //显示菜单
}
});
getContentPane().setBackground(Color.white); //窗口的默认背景色为白色
setSize(230,160); //设置窗口大小
setVisible(true); //设置窗口为可视
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE ); //关闭窗口时退出程序
}
class ChangeColorAction implements ActionListener { //菜单项事件处理
public void actionPerformed(ActionEvent event) {
for (int i=0;i if (event.getSource()==items[i]) { //判断事件来自于哪个菜单项
getContentPane().setBackground(colors[i]); //设置窗口背景
repaint(); //重绘窗口
return;
}
}
}
public static void main( String args[]) {
new JPopMenuDemo();
}
}
运行结果:
Java之父到微软奥齐 技术大牛冬天来了
2010年10月19日,微软宣布首席软件架构师、微软云技术平台推动负责人雷·奥兹(Ray Ozzie)计划卸任。联想到不久前从Oracle出走的高斯林(绰号:高司令),看来技术大牛们似乎在经历一个严冬。
曲高和寡的技术大牛?
当年盖茨为了拿下Ray Ozzie,曾不惜收购Groove公司。在六顾茅庐后,2005年,50岁的Ray Ozzie终于同意加入微软。次年比尔盖茨宣布了他的个人退休计划,并由雷·奥齐来接替他开始担任微软首席软件架构师一职,换言之,以后整个微软的软件发展方向将由雷·奥齐来规划了。

微软首席架构师Ray Ozzie
Ray Ozzie给微软带来了Live和S+S,还有.NET 4.0、Windows Azure。对于开发界来说,.NET 4的革新性还是让大家眼前一亮。
.NET 4为我们带来了图表控件、SEO支持以及ASP.NET 4可扩展的输出缓存。同时值得一提的是.NET 4多核并行计算,其实在.NET 1.0中就有了并行编程技术的一些实现——多线线程技术。多线程最大的问题就是难于使用和管理,在.NET 4中也终于解决了这一问题。
随着.NET 4而来的还有崭新的IDE——Visual Studio 2010。Visual Studio 2010不光在.NET开发平台有所进步,同时也融合了项目管理与架构设计的功能,让开发流程更加紧密。
这一切和雷·奥齐的睿智是分不开的,但是在一个移动设备大行其道的今天,似乎大家对以前的软件开发大牛不再感冒。新一代崇拜的偶像似乎更应该是乔布斯这样的教主。
微软花费重金打造Windows Phone,似乎跟Ray Ozzie的关系已经不大了。曾经的技术牛人,似乎也有迟暮之日。
高司令:Oracle杯酒释兵权
高斯林,高司令。贵为Java之父和Sun产品开发部首席技术官,于2010年4月9日带着十足的愤怒与怨念离开了收购Sun的Oracle。不少媒体人并不是哀婉叹息,而是认为高司令太啰啰嗦嗦,理应离开。

Java之父:高斯林
Java之父高司令,恐怕也无法左右理清Java的未来。对于Java,Oracle的下一步打算是什么?其实谁也无法说清Oracle到底想干什么。Java 7的难产,似乎也预示着Java将与MySQL一样,命运多舛。
正在享受退休生活的高司令,似乎还自得其乐。放下担子,可能有更多的时间让这位Java之父更多的思考未来。
都是金融危机惹得祸?
2008年席卷全球的金融危机,对IT行业打击不小。生存的紧迫性让大家都勒紧了裤腰带,这个时候裁员增效就成了主流。技术大牛们在经济景气时还能呼风唤雨,但是到了金融危机,更多的限制让他们无所适从。失去了自由的空间,大牛们的睿智就成了一种累赘。危机中一个好的销售经理绝对比一个技术大牛更能获得CEO的青睐,那么高司令等被扫地出门也是理所当然的事情。
其实大家也不必担忧技术的发展,大牛们是金子,是金子到哪里都能发光。正如梵高等画家在困境中更能出好作品一样,高司令在享受安逸的退休生活时会不会又有什么奇思妙想?让我们拭目以
如何在java程序中设置文件为“隐藏”属性
Java代码
public class 设置文件属性 {
// 执行以下代码你将看到一个属性为隐藏的文件(D:ddd.ddd)
// 请到D盘下查看
public static void main(String[] args) throws IOException {
// 创建新文件
File file = new File(“D:\ddd.ddd”);
// 删除文件并创建新文件
file.delete();
file.createNewFile();
// 拼dos命令
// attrib的祥细功能介绍请在DOS内输入 “ attrib /? ” 查看
String sets = “attrib +H ”“ + file.getAbsolutePath() + ”“”;
// 输出命令串
System.out.println(sets);
// 运行命令串
Runtime.getRuntime().exec(sets);
}
}
1. 当Java.io中,如果文件的操作的时候,判断是否隐藏用File.ishiden()判断是否只读,可用File.canWrite()。
2. 当要设置是否是可读或者是隐藏时,在java中除了提供File.setReadOnly()外,就无其他方法了。所以我们必须到Dos环境下去设置,在 java中用Runtime.getRuntime().exec(“attrib ” + “”“ + file.getAbsolutePath() + ”“”+ “ +R”)该方法可以实现。因为路径file.getAbsolutePath()中可能会还有空格,所以必须用引号把它括起来,当作一个参数。这样就可以实现了
(1) 设置只读Runtime.getRuntime().exec(“attrib ” + “”“ + file.getAbsolutePath() + ”“”+ “ +R”);
(2) 设置可写Runtime.getRuntime().exec(“attrib ” + “”“ + file.getAbsolutePath() + ”“”+ “ -R”);
(3) 设置隐藏Runtime.getRuntime().exec(“attrib ” + “”“ + file.getAbsolutePath() + ”“”+ “ +H”);
(4) 设置非隐藏Runtime.getRuntime().exec(“attrib ” + “”“ + file.getAbsolutePath() + ”“”+ “ -H”);
Java正则表达式判断手机号
要更加准确的匹配手机号码只匹配11位数字是不够的,比如说就没有以144开始的号码段,
故先要整清楚现在已经开放了多少个号码段,国家号码段分配如下:
移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
联通:130、131、132、152、155、156、185、186
电信:133、153、180、189、(1349卫通)
那么现在就可以正则匹配测试了,
源码import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ClassPathResource {
public static boolean isMobileNO(String mobiles){
Pattern p = Pattern.compile(“^((13[0-9])|(15[^4,\D])|(18[0,5-9]))\d{8}$”);
Matcher m = p.matcher(mobiles);
System.out.println(m.matches()+“---”);
return m.matches();
}
public static void main(String[] args) throws IOException {
System.out.println(ClassPathResource.isMobileNO(“12016155153”));
}
}
第二种方法:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
String value=“手机号”;
String regExp = “^[1]([3][0-9]{1}|59|58|88|89)[0-9]{8}$”;
Pattern p = Pattern.compile(regExp);
Matcher m = p.matcher(value);
return m.find();//boolean
Java中基本数据类型与流的操作方法
Java中除了二进制文件和使用文本文件外还有基于Data的数据操作,这里的Data指的是Java的基本数据类型和String。基本数据类型包括byte、int、char、long、float、double、boolean和short。
说到Java的基本数据类型必须谈到的两个类是DataInputStream和DataOutputStream。它们提供了对Java基本数据类型的操作,但是这些方法事实上是在两个重要的接口中定义的DataInput和DataOutput,它们的功能就是把二进制的字节流转换成 Java的基本数据类型,同时还提供了从数据中使用UTF-8编码构建String的功能。有一个重要的类RandomAccessFile实现了 DataInput和DataOutput两个接口使得他能够对文件同时进行写和读的操作。
在DataInputStream和DataOutputStream两个类中的方法都很简单,基本结构为readXXXX()和 writeXXXX()其中XXXX代表基本数据类型或者String。在这里不多讲述,不过值得一提的是我们有必要读读java中unicode的编码规则,在API doc中有比较详细的介绍。通常我们的对象有很多都是由java的基本数据类型构成的,比如一个人的信息包括姓名,电子信箱,电话号码和性别等。其实我们可以用DataInputStream中的方法和DataOutputStream中的方法按照一定的序列把数据写入流中再按照相同的序列把他们读取出来,这就是我们自己实现的序列化,这可以用在数据传输中,比如在J2ME联网程序中使用序列化机制传输数据。下面我们看看如何自己实现序列化,首先我们要有两个构造函数其中一个参数为空。
public Account()
{
}
public Account(String userName, String email, int age, boolean gender)
{
this.userName = userName;
this.email = email;
this.age = age;
this.gender = gender;
}
当我们进行序列化的时候也很简单,我们只是往DataOutputStream中按照顺序写入对象的成员变量。例如:
public void serialize(DataOutputStream dos) throws IOException
{
dos.writeUTF(userName);
dos.writeUTF(email);
dos.writeInt(age);
dos.writeBoolean(gender);
}
当我们进行反序列化的时候则按照相同的顺序从DataInputStream里面读取数据并赋值给成员变量。例如:
public static Account deserialize(DataInputStream dis) throws IOException
{
Account account = new Account();
account.userName = dis.readUTF();
account.email = dis.readUTF();
account.age = dis.readInt();
account.gender = dis.readBoolean();
return account;
}
为了便于调试我们还提供一个toString()的方法打印出对象的实际信息。这是个好的习惯。
public String toString()
{
return “UserName = ” + userName + “ Email = ” + email + “ age = ” + age + “ gender = ” + (gender ? “male” : “female”);
}
为了测试序列化我们编写下面的程序进行测试,代码比较简单。
package com.j2medev.mingjava;
import java.io.*;
public class TestDataIO
{
public static void main(String[] args) throws IOException
{
Account account = new Account(“mingjava”,“eric.zhan@263.net”,25,true);
System.out.println(“before serialization.。..。..。.”);
System.out.println(account.toString());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
account.serialize(dos);
DataInputStream dis = new DataInputStream(new ByteArrayInputStream(baos.toByteArray()));
Account sAccount = Account.deserialize(dis);
System.out.println(“after serialization.。..。..。..”);
System.out.println(sAccount.toString());
dos.close();
dis.close();
}
}
package com.j2medev.mingjava;
import java.io.*;
public class Account
{
private String userName = “”;
private String email = “”;
private int age = 0;
private boolean gender = false;
public Account()
{}
public Account(String userName, String email, int age, boolean gender)
{
this.userName = userName;
this.email = email;
this.age = age;
this.gender = gender;
}
public void serialize(DataOutputStream dos) throws IOException
{
dos.writeUTF(userName);
dos.writeUTF(email);
dos.writeInt(age);
dos.writeBoolean(gender);
}
public static Account deserialize(DataInputStream dis) throws IOException
{
Account account = new Account();
account.userName = dis.readUTF();
account.email = dis.readUTF();
account.age = dis.readInt();
account.gender = dis.readBoolean();
return account;
}
public String toString()
{
return “UserName = ” + userName + “ Email = ” + email + “ age = ” + age + “ gender = ” + (gender ? “male” : “female”);
}
}
编译运行程序在控制台输出:
before serialization.。..。..。.
UserName = mingjava Email = eric.zhan@263.net age = 25 gender = male
after serialization.。..。..。..
UserName = mingjava Email = eric.zhan@263.net age = 25 gender = male
序列化成功!
2010年10月编程语言排行榜:Java的混乱之治
近日,TIOBE发布了2010年10月的编程语言排行榜,距离宣布“年度编程语言”(在一年内上升率最快的语言)还剩3个月了。目前Objective - C遥遥领先,上升率为2.54%;其次是Python的0.96%,以及C#的0.55%。从榜单上看,本期编程榜没有发生太大的变化,和51CTO最近做了一次网上调查一样,Java依旧是广大开发者的首选语言!
最初,Java作为一个实验室项目,因为投标美国数字电视项目失败几乎被打入冷宫,但是因互联网的兴起而复活。十几年来,Java一直是被使用最多的语言,在10月编程语言排行榜上,Java也占据着王者的位置。但是Java风光的背后却充满了混乱的喧嚣!很多人认为这是Oracle收购Sun之后的阵痛,但是在很多年以前就有一篇介绍Java混乱的文章:Sun和BEA一直在博弈是否合作推出SOA框架(虽然Sun和BEA最终合作了,但是这两个倒霉蛋都在自己logo上面加上“Oracle”的字样);社区在为EJB与非EJB吵吵嚷嚷;纷乱的框架让开发者烟花缭乱,而这些框架又在诋毁对手……弹指一挥间6-7年过去了,眼前Java的混乱却一直都没有停止过,Java世界里面到底发生了什么?
潘多拉的盒子——失控的源代码
开放源码的精神在于使用者可以使用、复制、散布、研究、改进软件。开源世界里最重要的一项技术便是我们熟知Java技术。Java技术在一开始就定位在“跨平台、动态的Web、Internet计算”这个位置上。为能使Java比晚自己六年出现的.Net更具活力,前Sun公司在2006年11月正式宣布开放Java的源代码。Sun可能没有想到,从这一刻起,Java的混乱局面像开启的潘多拉盒子不可收拾。IBM在第一时间就表示了自己的反对,IBM“建议”Java的开源应该走Apache的道路。为什么会这样呢?在开源世界里谁贡献更多的源代码,谁就拥有了这项技术话语权。前Sun公司对Java开源循序的是GPL是开放源代码的方法,即Sun把Java贡献给JCP和开源社区,开源社区的开发者可以贡献自己的源代码,而使用Java开发产品的厂商在产品面世时也要公开自己的源代码。这种错综复杂的关系让开源社区、各个厂商、Sun以及后来收购Sun的Oracle在Java的世界里争得面红耳赤,像Oracle与Google之间的版权纠纷其根源也是源于此。
无作为的JCP
Java项目还要发展。在Oracle收购Sun之后,与Sun行事完全不同的Oracle对待Java的呢?在51CTO独家报道《Oracle比Sun更聪明?细看JCP及Java的未来之路》中我们看到:在Java发展上越来越重要的JCP效率越来越受到诟病,有许多的技术都是在JCP过程外产生,后来才被集成到Java平台中的,而JCP内部很少培育出像样的技术。但是Oracle即不愿放手Java授权JCP,也不敢解散JCP,由自己全权掌控Java。放手Java是不可能,但是Oracle过度地控制,必然会对Java平台产生负面影响,用户的抱怨声也会再起。由众多开发者和厂商授权者组成的JCP本来可以主导Java的发展,但是JCP内部官僚主义盛行,行动缓慢,致使JCP一次次错过重整Java的机会!
跳票王JDK 7重整河山
JDK 7,第一个真正开源的JDK版本,也是要为Java带来变革性的一个版本依然处于默默的研发当中。JDK 7将让Java经历“重整河山”过程。按照Java的计划,要对Java进行大幅度的瘦身,提升执行效率,改变语法结果,支持脚本语言。这个改变也同样是和艰巨的。但是改变之后就是新生,就会让Java重新获得年轻的声明,这将使Java改变目前混乱的局面。Java研发团队从来都没有停止他们的工作,一直在推动的项目前进;众多Java开发者都在关注者JDK 7的发布,但是一次次延期已经使JDK 7成为跳票王。很多Java的爱好者都期待着JDK 7改变Java目前混乱的局面,但是JDK 7从2009年年中发布早期预览版到预计2010年6月发布正式版,再到Java研发团队提出A、B两大个计划,JDK 7一度传言最迟将在2012年发布!Java的希望啊!让开发者如此的焦躁,留给开发者的只是期望和等待!
至于JDK 7是否是Java现今混乱之治的机会呢?让我们继续等待Oracle的B计划在2011年向开发者呈现的那一刻吧!
以乱治乱 不死Java在移动开发领域大展身手
很多人都说Java已死,Java创始人James Gosling却在博客撰文Java离死远着呢!何故?虽然Java给人的感觉越来越笨重,但是移动应用的世界Java牢牢的占据了统治地位。
近年来,移动终端的内涵开始变得越来越宽泛,各类终端的定义边界开始越来越模糊化。“融合”的趋势明显:手机在融合了MP3或者MP4等的多媒体功能之后,又开始融合GPS功能;MP3、MP4也没闲着,iTouch融合了通话功能之后,摇身变成了iPhone,不小心创造了2008年IT通信领域的一大奇迹。由此可见未来移动终端设备的发展必将带动移动应用程序的发展。
目前移动开发的平台非常多,苹果的iPhone OS、Google的Android、微软的Windows Phone、RIM的BlackBerry、老牌手机霸主诺基亚的Symbian以及诺基亚和英特尔合力打造的MeeGo等等,而移动终端设备所使用的移动程序大多只能各自的平台下运行:Android程序不能在Symbian平台上运行,iPhone无法使用的Windows Phone 7的程序。在混乱的移动开发平台中还没有一个能在短时间内击垮所有的对手,但是除了封闭的iPhone使用Objective-C编写程序,其他平台几乎都使用Java。在这片混乱的移动开发平台中,Java已经大展身手许久。Google的Android已经在短短的两三年内成为移动开发领域最不可忽视的力量。Oracle同样也看到这点,先是利用版权问题刁难Google,在近期又推出Java ME最新的路线图。未来移动开发的走势,就关系到Java在移动领域的里发展,尽管Java依旧风光,但是透过这一片混乱的烟雾我们依旧看不清Java的方向。
结束语
开源、中立和客观与商业利益是对立的,但是有时有不得不依赖商业。在Java的混乱世界里,我们不断苛求着Java,用理想主义去看待Java,还是默默的支持Java,是每一个Java程序员的选择。希望Java不畏混乱,一路走下去!
前10名编程语言趋势走向
其他语言及排名
下面是第50到100的编程语言排名
(Visual) FoxPro, ABC, Algol, Awk, Bash, bc, BCPL, Beta, C++/CLI, Caml, CFML, cg, Clean, Clipper, Cobra, Curl, DCL, Dylan, Eiffel, Erlang, F#, Factor, Groovy, Icon, J, LabVIEW, LabWindows/CVI, Limbo, MAD, MAX/MSP, Modula-2, Modula-3, MUMPS, Oberon, Objective Caml, Occam, Oz, PL/I, Postscript, Q, S, SIGNAL, SPSS, Squirrel, Standard ML, VHDL, X10, XBase, XSLT, Z shell
历届榜单年度最佳语言
编程语言类别
静态类型和动态类型的语言走势
- 默认分类(20)
- J2EE(25)
- Java(56)
- PHP(55)
- SEO(10)
- 网页设计(20)
- 网站建设(37)
- 数据库(7)
- JavaScript(17)
- JQuery(6)
- MySQL(20)
- SQL Server(6)
- Access(1)
- Oracle(6)
- office(6)
- Dreamweaver(4)
- Photoshop(12)
- Flash(9)
- Fireworks(13)
- CSS(14)
- HTML(4)
- .NET(7)
- ASP(2)
- DB2(1)
- Ajax(2)
- Linux(12)
- Struts(7)
- Hibernate(8)
- Spring(2)
- Jsp(22)
- Asp(8)
- C#(3)
- C++(1)
- 网络安全(5)
- 软件工程(7)
- XML(1)
- English(2)
- 计算机等级考试(2)
- 计算机病毒(4)
- 个人日志(76)
- 互联网(15)
- ActionScript(10)
- Android(3)
- 数据结构与算法(1)
- 游戏策略(3)
- 美文翻译(2)
- 编程开发(19)
- 计算机应用(4)
- 计算机(10)
- Unity3d(6)
- 其他(1)
- egret(1)










