java代码翻译成中文版求翻译

java 注解(翻译自Java Tutorials) - ggjucheng - 博客园
注解为程序提供数据,但是,它不是程序的一部分。它们不会在注解的代码直接影响应用。
注解有如下的使用
编译器信息& 编译器用注解检测到错误或抑制警告。
编译时和部署时的处理 & 软件工具可以处理注释的信息来生成代码,XML文件,等等。
运行时处理 & 有些注解是在运行时进行检查.
注解可以应用到程序声明的类,字段,方法,和其他程序元素。
name = "Benjamin Franklin",
date = "3/27/2003"
class MyClass() { }
@SuppressWarnings(value = "unchecked")
void myMethod() { }
如果有一个元素取名为value,那么这个名字可以被忽略,例如:
@SuppressWarnings("unchecked")
void myMethod() { }
如果注解没有元素,小括号可以被忽略,例如:
void mySuperMethod() { }
许多注解取代了本来已经在代码中的注释。
假设传统的软件组在每个类的类体的开始,使用注释提供了重要的信息:
public class Generation3List extends Generation2List {
// Author: John Doe
// Date: 3/17/2002
// Current revision: 6
// Last modified: 4/12/2004
// By: Jane Doe
// Reviewers: Alice, Bill, Cindy
// class code goes here
使用注解提供一样的元数据,首先要声明一个注解类型,语法是:
@interface ClassPreamble {
String author();
String date();
int currentRevision() default 1;
String lastModified() default "N/A";
String lastModifiedBy() default "N/A";
// Note use of array
String[] reviewers();
注解的声明,就像在interface声明前面添加一个@字符(@是AT,即Annotation Type)。注解类型,其实是一种形式的接口,它会覆盖在后面的课程中。就目前而言,你不需要了解接口
注解的声明的正文,包括注解元素的声明,看起来很像方法。注意,这里可以定义可选的默认值。
一旦注解定义好了,就可以在使用注解时,填充注解的值,就像这样:
@ClassPreamble (
author = "John Doe",
date = "3/17/2002",
currentRevision = 6,
lastModified = "4/12/2004",
lastModifiedBy = "Jane Doe",
// Note array notation
reviewers = {"Alice", "Bob", "Cindy"}
public class Generation3List extends Generation2List {
// class code goes here
注意:要让@ClassPreamble的信息出现在Javadoc生成的文档,必须使用@Documented注解定义@ClassPreamble
// import this to use @Documented
import java.lang.annotation.*;
@Documented
@interface ClassPreamble {
// Annotation element definitions
编译器使用注解
有这么几种注解类型通过语言规范预定义:@Deprecated, @Override, @SuppressWarnings。
@Deprecated&@Deprecated注解指示,标识的元素是废弃的,不应该再使用。编译器会在任何使用到@Deprecated的类,方法,字段的程序,产生警告。当元素是废弃的,它也应该使用Javadoc的@deprecated标识文档化,,如下面的例子。两个Javadoc注释和注解中的&@&符号的使用不是巧合 - 它们是相关的概念上。另外,请注意Javadoc标记开始用小写字母&D&和注解开始以大写字母&D&。
// Javadoc comment follows
* @deprecated
* explanation of why it
* was deprecated
@Deprecated
static void deprecatedMethod() { }
@Override&@Override注解通知编译器,覆盖父类声明的元素。
// mark method as a superclass method
// that has been overridden
int overriddenMethod() { }
虽然不要求在覆盖方法时,必须使用注解,但是它可以避免错误。如果一个方法标记为@Override,但是无法正确覆盖父类的任何方法,编译器会产生错误。
@SuppressWarnings&@SuppressWarnings注解,告诉编译器,抑制正常情况下会产生的特定的警告。下面的例子,一个废弃的方法被使用,编译器正常会产生警告,而这个情况下,这个注解导致警告会被抑制。
// use a deprecated method and tell
// compiler not to generate a warning
@SuppressWarnings("deprecation")
void useDeprecatedMethod() {
// deprecation warning
// - suppressed
objectOne.deprecatedMethod();
每个编译器的警告属于一个类别。java语言规范有两个类别:"deprecation" 和"unchecked"。"unchecked" 会在使用以前的写的泛型的遗留代码进行交互时,产生警告。抑制更多类别的警告,使用下面的语法:
@SuppressWarnings({"unchecked", "deprecation"})
注解的更高级使用,包括注解处理,读一个java程序,根据注解执行一些动作。例如,它可以产生辅助的源代码,减轻程序员创建的样板代码,始终遵循可预测的模式的工作量。为了推动这个工作,JDK 5.0包含了一个注解处理工具,成为apt。在JDK 6.0中,apt是java编译器的标准的一部分。
运行期使用注解,注解类型本身必须使用@Retention(RetentionPolicy.RUNTIME)注解,例如:
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@interface AnnotationForRuntime {
// Elements that give information
// for runtime processing请高手帮忙把以下JAVA代码翻译成PHP,100分全给你了
[问题点数:100分]
请高手帮忙把以下JAVA代码翻译成PHP,100分全给你了
[问题点数:100分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|清除回答草稿
&&&您需要以后才能回答,未注册用户请先。博客分类:
Java封装的百度翻译Api
百度没有提供直接可用的翻译api,有道倒是有,不过只能英译中,不支持其他语言。但是百度自己有个翻译服务,,使用的时候,页面并不会刷新,而是用ajax调用了一个翻译API,分析了一下,这个api地址是,接受三个参数,from,to,query分别是源语言,目标语言,待翻译文本。
简单封装了一下,默认中译英,要改其他语言,可以把参数提出来:
package com.pocketdigi.
import java.net.URLE
import model.TranslateM
import com.google.gson.G
import common.HttpG
public class TranslateApi {
* @param args
public static void main(String[] args) {
// TODO Auto-generated method stub
String dst=translate("百度翻译API测试");
System.out.println(dst);
public static String translate(String source)
String api_
api_url = new StringBuilder("http://fanyi.baidu.com/transapi?from=zh&to=en&query=")
.append(URLEncoder.encode(source,"utf-8")).toString();
String json=HttpGet.getHtml(api_url, "utf-8");
Gson gson=new Gson();
TranslateMode translateMode=gson.fromJson(json, TranslateMode.class);
if(translateMode!=null&&translateMode.getData()!=null&&translateMode.getData().size()==1)
return translateMode.getData().get(0).getDst();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
import java.util.L
public class TranslateMode {
String from,
List&Data&
public class Data{
String dst,
public String getDst() {
public void setDst(String dst) {
this.dst =
public String getSrc() {
public void setSrc(String src) {
this.src =
public String getFrom() {
public void setFrom(String from) {
this.from =
public String getTo() {
public void setTo(String to) {
public List&Data& getData() {
public void setData(List&Data& data) {
this.data =
Java 调用 有道翻译API
到申请key和id
数据接口
http://fanyi.youdao.com/openapi.do?keyfrom=xxx&key=yyyy&type=data&doctype=&doctype&&version=1.1&q=要翻译的文本
版本:1.1,请求方式:get,编码方式:utf-8
主要功能:中英互译,同时获得有道翻译结果和有道词典结果(可能没有)
参数说明:
 type - 返回结果的类型,固定为data
 doctype - 返回结果的数据格式,xml或json或jsonp
 version - 版本,当前最新版本为1.1
 q - 要翻译的文本,不能超过200个字符,需要使用utf-8编码
errorCode:
 0 - 正常
 20 - 要翻译的文本过长
 30 - 无法进行有效的翻译
 40 - 不支持的语言类型
 50 - 无效的key
import java.io.BufferedR
import java.io.IOE
import java.io.InputStreamR
import java.io.UnsupportedEncodingE
import java.net.URL;
import java.net.URLC
import java.net.URLE
import java.util.L
import java.util.M
public class YoudaoTranslate {
private String url = "http://fanyi.youdao.com/openapi.do";
private String keyfrom = "";
private String key = "";
private String doctype = "xml";
private String sendGet(String str) {
// 编码成UTF-8
str =URLEncoder.encode(str, "utf-8");
} catch(UnsupportedEncodingException e) {
e.printStackTrace();
StringBuffer buf = newStringBuffer();
buf.append("keyfrom=");
buf.append(keyfrom);
buf.append("&key=");
buf.append(key);
buf.append("&type=data&doctype=");
buf.append(doctype);
buf.append("&version=1.1&q=");
buf.append(str);
String param =buf.toString();
String result = "";
BufferedReader in =
StringurlName = url + "?" +
URL realUrl =new URL(urlName);
//打开和URL之间的连接
URLConnectionconn = realUrl.openConnection();
//设置通用的请求属性
//conn.setRequestProperty("accept", "*
public String getYouDaoValue(String str) {
String result =
// 发送GET请求翻译
result = sendGet(str);
// 处理XML中的值
int re1 =result.indexOf("&errorCode&");
int re2 =result.indexOf("&/errorCode&");
String in =result.substring(re1 + 11, re2);
System.out.println("===========翻译是否成功============"+ in);
if (in.equals("0")) {
System.out.println("翻译正常");
re1 =result.indexOf("&paragraph&&![CDATA[");
re2 =result.indexOf("]]&&/paragraph&");
in =result.substring(re1 + 20, re2);
System.out.println("==========有道翻译================"+ in);
re1 =result.indexOf("&ex&&![CDATA[");
re2 =result.indexOf("]]&&/ex&");
in =result.substring(re1 + 13, re2);
System.out.println("==========有道词典-网络释义================"+ in);
} else if (in.equals("20")){
System.out.println("要翻译的文本过长");
return"要翻译的文本过长";
} else if (in.equals("30")){
System.out.println("无法进行有效的翻译");
return"无法进行有效的翻译";
} else if (in.equals("40")){
System.out.println("不支持的语言类型");
return"不支持的语言类型";
} else if (in.equals("50")){
System.out.println("无效的key");
return"无效的key";
public static void main(String[] args) {
String str = "The weather isgood today";
YoudaoTranslate test = newYoudaoTranslate();
String temp =test.getYouDaoValue(str);
System.out.println(temp);
Java 实现在线翻译功能 调用微软Bing API
下面是利用java程序实现翻译功能,调用微软Bing API
注意:代码中的keyId 需要自己申请。。。
(1)首先去 ,下载相关jar文件,这里有对微软翻译api的详细使用有作详细介绍。
(2)去申请key,进入,填写相关的你的应用信息就行了。就会有下面的图片中显示的key,中的Application ID就是key
package com.
import com.memetix.mst.language.L
import com.memetix.mst.translate.T
public class Test {
public static void main(String[] args) {
* 大概是针对C#和php的,没有仔细研究过(可以访问下方的http://msdn.microsoft.com/en-us/library/hh454950.aspx 来学习一下)
* Set your Windows Azure Marketplace client info - See http://msdn.microsoft.com/en-us/library/hh454950.aspx
Translate.setClientId( Enter your Windows Azure Client Id here );
Translate.setClientSecret( Enter your Windows Azure Client Secret here );
//在Java程序内翻译
Translate.setKey( Enter your API Key here );
String translatedT
String content = "Bayside Living, Great Value for Money. " +
"Open 11am - 11.30am Saturday 23rd March, 2013. Occupying a level 814m2 parcel in one of the areas great family friendly pockets." +
" This two storey family home is ,spaciously proportioned, wonderfully quiet and ready to enjoy immediately. " +
"Interiors provide a flexible layout and superb in/outdoor flow to the child friendly ,entertaining areas, catching abundant north easterly sunshine. " +
"The upper level captures views reaching to Moreton Bay and beyond, whilst letting the natural light fill the home." +
"The floor plan can be adapted to suit the occasion, as it offers multiple formal and casual living and dining areas and enough accommodation to cater for the family. " +
"The large central kitchen overlooks the level, child friendly lawn and landscaped gardens, featuring a covered patio that’s perfect for entertaining guests. " +
"All bedrooms are sizable with built ins and the dedicated parents retreat features an ensuite and large covered front deck with Bay views and privacy shutters. " +
"Also featuring a double lock up garage with internal access, plenty of storage and optional parking in the drive way. " +
"For the astute buyer/investor, the home offers a 22m frontage and has the option of being sub divided(Subject to Brisbane City Council Approval)This desirable location has easy access to buses, trains, cafés and restaurants, with the Gateway, Airport and Port of Brisbane a short drive away." +
" Those seeking the highly sought after bayside lifestyle need look no further than this outstanding home. Owners are committed elsewhere and will consider genuine offers.";
translatedText = Translate.execute(content, Language.ENGLISH, Language.CHINESE_SIMPLIFIED);
System.out.println(translatedText);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
翻译结果:
湾畔生活,物超所值。打开 11 上午-11:30 上午星期六 2013 年 3 月 23 日。中的一个伟大的家庭友好口袋领域占领级别 814 米 2 的包裹。这两个层高家是,宽敞的比例、 奇妙安静和准备立即享受。室内设计提供一个灵活的布局和精湛的中、 户外流动对儿童友好,娱乐领域,捕捉北偏东阳光充沛。上层捕获达成到莫顿湾和之外,同时又让自然的浅色填充在家庭的观点。平面图可以调整,以适合各种场合,它提供了多个正式和休闲生活和就餐区及足够的住宿以照顾家庭。大型中央厨房俯瞰级别、 儿童友好草坪和花园,设有盖的天井,非常适合招待客人。所有的卧室都相当具有内置的加载项和专用的父母撤退套间和大盖的前甲板与海湾美景和隐私百叶窗的功能。此外配备了具有内部访问,充足的存储和驱动器中的可选泊车车库双锁的方式。精明买家投资者,为家庭提供 22 米临街和已被 sub 选项划分 (待布里斯班市议会批准) 这理想的位置已经很容易访问到汽车、 火车、 咖啡馆和餐馆,与网关、 机场和港口的布里斯班一个短的车程。那些寻求备受追捧后贝塞德的生活方式需要那没有比这个杰出的家。业主是致力于其他地方,并会考虑真正的优惠。
看着结果还可以,但是每月超过两万字可能就会收费了。具体的还是要看官网API介绍吧。
原文参考地址:
有想学习关于嵌入式的大家可以去 www.muxiaofei.com& 学习一下,互相交流
浏览: 1520692 次
来自: 珠海
很有用,谢谢
厉害,困扰了我很久
非常好,很实用啊。。
你好,你能把能讓這個程序的運行起來的代碼發我一下嗎?非常著急需 ...
可能配置有问题.
这文章我只是收藏转发而已, 并没有实 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'Java编程入门(词汇表) - ImportNew
抽象类(abstract class):抽象类不能创建对象,主要用来创建子类。Java中的抽象类使用 abstract 修饰符定义。
抽象数据类型(abstract data type ADT):抽象数据类型指明了可能的类型和允许进行的操作,但是没有提供实现。
访问标识符(access specifier):用于方法或变量定义,限定了哪些类可以访问该方法或变量。Java中的访问标识符有 public、protected 和 private。没有访问标识符修饰的方法或变量默认可见性为“package”。
活动记录(activation record):活动记录是包含了实现子程序调用必须的所有信息,包括参数值、子程序中的本地变量和子程序调用结束时计算机的返回地址。活动记录存储在栈中,使得多个子程序调用同时活跃成为可能。这对递归非常重要,递归时对同一个子程序的多个调用要求同时激活。
实参(actual parameter):子程序的参数叫做声明。当调用执行时,通过声明把值传递给自函数。实参也叫做“参数”。
地址(address):计算机内存中的每个位置都有一个地址,表示该位置的编号。内存中的位置按序号排列。在现代计算机中,内存中的每个字节都有自己的地址。在存储或读取内存信息时用需要用到地址。
算法(algorithm):完成某项任务所需要的一步一步的过程,过程本身没有歧义,且可以保证在有限的步骤内完成该任务。
阿尔法颜色组成(alpha color component):颜色组成用来描述颜色的透明度或不透明度。阿尔法组成越高,颜色越不透明。
API:应用编程接口。针对软件包或“工具箱”的接口说明。API包含了工具箱中所有类或子程序及其使用说明。
Applet:与可以单独运行的应用程序不同,Applet是一种在Web浏览器中运行在Web页面上的Java程序。
动画(animation):由一组静态图片快速显示展示出动态效果。每一幅静态图片叫做帧。在Java中,动画通常由 Timer 对象驱动。每次定时器触发时,会显示动画的下一帧。
反锯齿(antialiasing):当图形和文本以像素方式显示时,可以通过调整像素的颜色减轻“锯齿”效应。反锯齿画图时,图形只覆盖像素的一部分,图形的颜色与该像素之前的颜色混合而成。混合的程度由覆盖像素的多少决定。
数组(array):一个顺序排列的元素列表。列表中,每个元素都可以由自己的索引标识,即序号。在Java中,数组里所有元素必须类型相同,该类型也称作数组的基类型。数组是一种可随机访问的数据结构,也就是说,你可以随时直接访问数组中的任意元素。
数组类型(array type):这种数据类型的值是数组。比如类型的名字为 Type,那么 Type[] 就是数组类型,基类型为 Type。
赋值语句(assignment statement):计算机程序中的一种语句,可以读取或计算数值,并将其存储到变量中。Java中的赋值语句形式为:变量名 = 表达式。
异步事件(asynchronous event):异步事件指发生时间不可预料的事件,计算机程序无法对其控制。像点击鼠标、按键这样的用户输入事件都是异步的。
ASCII码:美国信息交换标准码。这种编码使用7个比特对字符编码。ASCII码只支持128个字符,不支持重音字符、非英语字符、特殊符号或非字符化语言的表意符号,比如中文。Java采用了容量更大、更加完整的Unicode编码处理字符。
基线条件(base case):在递归算法中,基线条件可以直接处理不需要继续递归。
二进制数(binary number):数值被编码为一组0、1序列。一般数字以“10为基数”,二进制数与其类似,只是以“2为基数”。
二叉树(binary tree):二叉树是一种链式数据结构。可以为空树,或者由两棵更小的二叉树(可能为空树)与根节点组成。根节点包含了指向两棵子树的指针。这两棵更小的二叉树被称作左子树和右子树。
比特(bit):一位二进制数,可能是0或1。
黑盒(black box):指系统或组件在使用时无需关心内部结构。黑盒包括接口和实现。在系统中,被当做组件使用的黑盒叫做模块。
块(block):在Java编程中,被花括号({})包围的一组语句称为块。(代码)块用来将一组语句组合成一条语句。块可以为空,表示不包含任何语句,即一对空的花括号。
阻塞操作(blocking operation):一个操作如果需要等待某些事件发生就称为“阻塞”操作,比如从网络连接读取数据。执行阻塞操作的线程会一直处在“阻塞”状态,直到事件发生。处于阻塞状态时,线程不能执行任何指令。而程序中的其它线程可以继续执行。
阻塞队列(blocking queue):当阻塞队列为空时,出队操作会引发阻塞,直到队列中有新成员加入。如果阻塞队列有大小限制,当队列填满时,入队操作也会引起阻塞。
自底向上设计(bottom-up design):自底向上设计是一种软件设计方法。从系统的基础组件开始设计,然后将它们组合成更复杂的组件,诸如此类。
BufferedImage类:BufferedImage类展示了“屏外画布”,即图片存储在计算机内存中,可以在屏幕外进行绘制。
分支(branch):分支是一种控制结构,计算机通过分支从2个或多个不同的执行路径中进行选择。Java有两种分支语句:if 语句和 switch 语句。
字节(byte):字节是一种由8个比特组成的内存单元。一个字节可以保存8个比特二进制数。
字节码(bytecode):“Java字节码”是Java虚拟机机器语言的常用名称。Java程序会被编译成Java字节码,后者由JVM执行。
字符集(charset):字符集是一种将字符数据编码为二进制的特定编码形式。例如UTF-8和ISO-8859-1。
受检异常(checked exception):在Java中受检异常必须处理,可以通过 try catch 语句捕获,或者在方法上使用 throw 语句抛出该异常。如果没有用这两种方式处理受检异常,会报告语法错误。
类(class):类是Java的基础编程单元。类是静态方法、非静态方法和变量的集合。静态成员是类自身的一部分,非静态或“实例”成员是创建对象的蓝本,由此创建的对象“属于”该类。
类变量(class variable)和类方法(class methods):“静态变量”和“静态方法”的别名。它们是类的一部分,与对象无关。
客户端/服务器(client/server):一种网络通讯模式。其中,“服务器”在网络上守候某个已知地址,等待“客户端”向它发起连接请求。这是TCP/IP协议的基础通讯模型。
命令行接口(command-line interface):一种计算机交互方法。用户向计算机输入命令,计算机对每个命令进行响应。
注释(comment):在一个计算机程序中,注释是那些被计算机忽略的文本。注释的目的是方便人们阅读,帮助理解程序。
编译器(compiler):编译器是一种计算机程序,将某种计算机语言(通常是高级语言)编写的程序翻译成机器语言程序。
组件(component):组件是对GUI可视元素的泛称,包括窗口、按钮或菜单等。在Java中,组件表现为 java.awt.Component 子类创建的对象。
构造函数(constructor):类的一种特殊子程序,主要用来创建类的对象。构造函数一般使用 new 操作符进行调用,通常不被看做“方法”。
容器(container):类似 JPanel 这样的组件,容器可以包含其它GUI组件。调用容器的 add() 方法可以向其添加组件。
方法契约(contract of a method):方法接口的语义组件。它指明了方法及其调用者的职责,如何调用该方法,以及正确调用方法时会执行的任务。方法契约应当在该方法的 Javadoc注释中完整说明。
控制结构(control structure):类似 if 语句、while 循环这样可影响程序控制流(即程序中指令执行顺序)的程序结构。
CPU:中央处理器。CPU是计算机中实际执行计算和运行程序的部分。
数据结构(data structure):经过组织的数据集合。在程序中被当做一个单元处理。
死锁(deadlock):一种多个线程无限等待的情况。出现死锁的原因,比如每个线程都在等待其它线程锁定的资源。
默认方法(default method):Java 8 接口中的方法,该方法提供了自己的实现。所有实现带有默认方法的接口都可以使用默认实现,但是不能覆盖默认方法。通过 default 保留字标记默认方法。Java 7不支持默认方法。
默认包(default package):默认包没有包名。没有在带有名字的包中声明的类都归属默认包。
明确赋值(definite assignment):在程序中,变量在使用前必须确保已经被赋值。局部变量只有在赋值后才能合法使用。为了达到这个要求,编译器必须对变量从声明开始到使用的每条路径都进行赋值检查。
弃用(deprecated):表示已经废弃,但为了先后兼容仍然保留。弃用的Java类或方法仍然是Java语言的一部分,但不建议在新代码中使用。在未来的Java版本中,弃用的内容会被移除。
对话框(dialog box):对话框是依赖其它窗体创建的新窗体。弹出对话框通常用作获取用户信息或展示消息。Swing API中,对话框表示为 JDialog 创建的对象。
分布式计算(distributed computing):一种在由网络连接的多个计算机中进行的并行处理。
虚参数(dummy parameter):调用子程序时,用来代替实际传入参数的标识符。虚参数也叫“形式参数”(有时候会用“变元 argument”表示实参,这时虚参数也叫做“参数”)。
enum:枚举类型。枚举类型的定义中列举了该类型所有可能值。在Java中,枚举类型是一个类,所有可能的值都是对象。
事件(event):在GUI编程中,事件指发生在程序控制以外的操作,比如点击鼠标。程序必须对发生的事件进行响应。
异常(exception):程序控制流程之外的错误或异常情况。在Java中,异常表示为 Throwable 对象,可以由 try..catch 语句捕捉并处理。
获取-执行周期(fetch-and-execute cycle):也称指令周期。指CPU执行机器语言程序的过程。CPU会从内存获取(即读取)指令,执行(运行)指令,然后再循环重复该过程。
标志(flag):一个布尔值。设为 true 时表示达到某些条件或发生了某种事情。可利用二进制数中的某个比特位作为标志。
形式参数(formal parameter):“虚拟参数”的另一种说法。
帧(frame):组成动画的某一幅画面,也是活动记录的另一种说法。
函数(function):带有返回值的子程序。
垃圾回收(garbage collection):自动回收内存的过程。被回收的内存由对象占用但已不再会对其访问。
泛型编程(generic programming):编写的代码不仅限于单一数据类型,可适应多种数据类型。Java集合框架及其它使用了相似技术的类都是泛型编程的实例。
getter方法:类中的一个实例方法,用来读取类的某个属性值。通常,属性代表一些实例变量的值。按惯例,getter方法被命名为 getXyz(),其中 xyz 是属性的名字。
全局变量(global variable):成员变量的别名。强调类中的成员变量可以在类方法外存在。
图形上下文(graphics context):用来绘制某些特定地点所必须得数据和方法。Java中的图形上下文是属于 Graphics 类的对象。
GUI:图形用户界面是与计算机的现代交互方式。计算机通过GUI在显示器上展示类似按钮和菜单这样的接口组件,用户可以通过像鼠标点击这样的方式与之交互。
哈希表(hash table):一种优化的数据结构,可以高效搜索、插入和删除对象。哈希表包含对象的地址数组。对象存储的地址由自身的“哈希代码”决定。通过对象的内容可以高效地计算出地址整数值。
堆(heap):计算机内存中存储对象的区域。
高级语言(high level language):类似Java这样的计算机语言,方便人们阅读,但在执行前需要翻译成机器语言。
HSB:一种颜色系统。其中颜色由3个数值表示(在Java中,实际的数值在0.0到1.0之间)。分别代表色调、饱和度和亮度。
IDE:集成开发环境。带图形用户界面的编程环境,集成了创建、编辑和执行程序的各种工具。
标识符(identifier):在程序中可用作名字的一组标识符。标识符可用作变量名、方法名和类名。
索引号(index):元素在数组中的位置编号。
实现(implementation):黑盒的内部实现,比如子程序的实现代码。
不可变对象(immutable object):不可变对象构造完成后不能改变,因为实例中所有变量都标记为 final。
无限循环(infinite loop):循环永远不会结束,因为它的循环条件永远判定为 true。
继承(inheritence):一个类可以继承另一个类。继承者会从父类继承数据和行为。
类的实例(instance of a class):指归属于类(或者该类型子类)的对象。当类用作对象模板时,对象由类中的构造函数创建的对象归属于这个类。
实例方法(instance method):类中的非静态方法,该类的所有实例都具有该方法。
实例变量(instance variable):类中的非静态变量,该类的所有实例都包含该变量。
接口(interface):对如何使用类似子程序这样的黑盒子一种通用说法。接口对其内部发生的情况没有提供任何信息。“interface”同时也是Java中的保留字。从这个意义上说,接口是一种定义了一个或多个抽象方法的类型。实现该接口的对象必须提供这些方法的定义。
解释器(interpreter):一种执行程序的计算机程序,被执行的程序由某种编程语言编写。通过从程序中一个接一个读取指令然后逐条执行(将指令翻译为等价的机器语言)。
I/O:输入/输出。计算机程序与其它部分的通讯方式,比如向用户展示数据、从用户那里获取信息、读写文件、通过网络发送和获取数据。
迭代器(iterator):与 list 或 set 这样的集合相关联的对象。可用来对该集合进行遍历。迭代器会轮流访问集合中的每个元素。
Java集合框架(Java Collection Framework
JCF):一组实现了泛型数据结构的标准类。包括 ArrayList、TreeSet等。
JavaFX:新的应用程序GUI工具集。在Java 8中推荐使用。JavaFX不在本书的讨论范围。
JDK:Java开发工具集。支持编译、运行Java程序的基本软件。JDK包含命令行编程环境以及JRE。要编译Java源代码或执行预编译程序时,需要使用JDK。
JRE(Java Runtime Environment):Java运行时环境。支持运行已编译的标准Java程序。JRE包括一个Java虚拟机和所有标准的Java类。
即时编译器(just-in-time compiler):一种解释器和编译器的结合,在解释程序某部分的同时可对其进行编译。接下来对该部分程序执行时比首次运行更快速。这样可以大大提高执行速度。现代JVM都使用了即时编译器。
JVM:Java虚拟机。将Java字节码作为机器语言执行的虚拟计算机。也用来称呼解析字节码程序的计算机程序。要在计算机上运行Java程序需要使用JVM。
布局管理器(layout manager):负责对容器中组件进行布局的对象。进行的部分操作包括设置大小和位置。不同类型的布局管理器实现的布局策略各不相同。
链式数据结构(linked data structure):一组由之指针相互链接的对象数据。这些指针存储在对象的实例变量中。链式数据结构包括链表和二叉树。
链表(linked list):一种链式数据结构,节点之间由指针串连形成线性链表。
监听器(listener):在GUI编程中,可以向对象注册特定事件的触发通知。因此可以说,对象在“监听”这些事件。
文字(literal):在程序中键入的一组字符序列,表示常量值。例如,当A在Java程序中出现时,’A'是一个常量字符。
(内存)位置(location
in memory):计算机内存由一系列位置组成。这些位置顺序编号,标识特定位置的编号被称为该位置的地址。
本地变量(local variable):在方法内部声明的变量,只能在该方法内部使用。代码块中声明变量的有效性,从声明处开始到该代码块的尾部结束。
循环(loop):一种控制结构,重复执行一组指令。Java提供了3种循环:for 循环、while 循环和 do 循环。
循环控制变量(loop control variable):for 循环中的变量,每次执行 for 循环时都会修改循环变量值,通过检查该变量决定是否结束循环。
机器语言(machine language):由计算机能够直接执行的指令组成的编程语言。机器语言中的指令会被编码成二进制数。每种类型的计算机都有自己的机器语言。用其它语言编写的程序必须翻译为该计算的机器语言,才能在它上面执行。
主内存(main memory):程序和数据可以存储在计算机的主内存中,主内存可以被CPU直接访问。其它形式的内存,比如磁盘驱动器,虽然也能存储信息,但是唯有主内存可被CPU直接访问。磁盘分区中的程序和数据只有拷贝到内存中才能被CPU访问。
map:一种映射数组。这种数据结构将一组(Collection)中的某个对象与摸个集合(Set)中的所有对象关联在一起。在Java中,map 由泛型接口 Map&T,S& 表示。
成员变量(member variable):定义在类中的变量,但不属于任何方法。成员变量与本地变量不同,后者在某个方法中定义。
内存(memory):计算机中的内存用来存储程序和数据。
方法(method):子程序的另一种称呼,在面向对象编程中使用。方法指包含在类或对象中的子程序。
模块(module):大型系统中的组件,与系统中其它部分以简单、定义清晰、直接的方式进行交互。
多任务(multitasking):一次执行多个编程任务。要么在多个任务之间快速来回切换,要么同时逐个执行多个任务。
多重处理(multiprocessing):进行多任务处理时使用多个处理器。这样,多个任务可以同时逐个执行。
互斥(mutual exclusion):防止两个线程同时访问相同的资源。在Java中,这种方法应用于多个线程同时访问同步方法或同步语句中的资源。互斥可以阻止竞态条件,但是可能引发死锁。
MVC模式(MVC pattern):模型-视图-控制器模式。一种用在GUI组件中进行职责划分的策略。模型代表组件的数据,视图指该模型在屏幕上的展示,控制器负责响应模型变化事件。在MVC模式中,这些职责由不同的对象负责处理。
非数值(NaN):不是一个数值。Double.NaN表示一种特殊的 double 值,表示未定义或非法值。
节点(node):链式数据结构中,某个对象的常用称呼。
null:一种特殊的指针值,表示“没有指向任何东西”。
数值分析(numerical analysis):使用逼近法研究算法的领域,比如实数以及从逼近计算中得到的错误。
差一错误(off-by-one error):一种常见错误,处理时多减或多加了一个元素。通常是技术错误或者循环时由其它原因过早停止或过度执行造成的。
对象(object):计算机程序中带有数据(变量)和行为(方法)的实体。Java中的对象必须以某个类作为创建模板。对象所属的类决定了对象包含的类和方法。
对象类型(object type):这种类型的值是对象而非基础类型。类和接口都是对象类型。
OOP(Object-Oriented Programming):面向对象编程。一种计算机程序设计和实现的方法。OOP使用类和对象创建、表示实体及实体间的交互。
操作系统(operating system):在计算机中一直运行的基础软件。没有操作系统的计算机无法工作。操作系统由Linux、Mac OS 和 Windows Vista。
操作符(operator):类似“+”、“&=”或”++”这样的操作符,可以在表达式中计算一个或多个值。
(操作符)重载(overloading of operators):相同操作符可以在不同类型的数据上使用。比如“+”操作可以同时应用于数字和字符类型。
(方法名)重载(overloading of method names):同一个类中定义了几个名称相同的方法,区别在于各个方法的签名不同。
重写(覆盖)(overriding):在子类中进行重定义。子类中,对从父类继承的方法重新定义,新定义的方法就是对原方法进行重写。
包(package):在Java中,相关类和子包的有名集合称为包,例如 java.awt 和 javax.swing。
并行处理(parallel processing):同时执行多个任务,可以是多个处理器,也可以由一个处理器在多个任务间返复执行。
参数(parameter):调用子程序时,参数用来向子程序提供信息。在执行子程序代码前,子程序调用语句中的“实参”会分配给子程序定义的“虚参数”。
参数化类型(parameterized type):类似 ArrayList&String& 这样,包含了一种或多种类型参数的类型(这里的参数类型是String)。
解析(parsing):确定预演中字符串语法结构的过程。解析字符串用来确定字符串中是否遵循该语言的语法;如果是,那么会确定该字符串是如何根据语法进行创建。
部分完全数组(partially full array):数组是用来存储数量各异的元素。部分完全数组表示为一个带有追踪元素个数计数器的普通数组。
像素(pixel):指屏幕或图片中的“图像元素”。一幅图像由像素的行和列组成。每个像素的色彩都可以单独设置。
多态(polymorphism):多态是指调用实例方法的意义取决于调用方法时对象的实际类型。也就是说,如果变量的类型是 var,那么调用方法的语句,比如 var.action() 取决于执行时 var 所指向的对象类型,而非 var 变量的类型。
指针(pointer):代表计算机内存中某个地址的值,因此可以看做“指向”具有该地址的位置。在Java中,变量不存有对象;变量只是指向存储该对象的位置。指针也称作“引用”。
语用学(pragmatics):描述如何编写好程序的经验法则。例如样式规则、程序组织指南都是编程语用学的一部分。
优先级(precedence):操作符的优先级指,在没有括号的情况下,表达式中多个操作符的作用顺序。
前置条件(precondition):在程序的执行过程中,为了让程序正确运行,前置条件必须判定为 true。子程序的前置条件是指,为了让子程序正确运行必须满足的前置条件。子程序的前置条件通常是对传入的子程序的实参值进行的限制。
优先级队列(priority queue):一种表示元素结合的数据结构,其中每个元素都有自己的“优先级”。优先级队列具有添加和移除操作。可以按照任意的顺序添加元素,但移除时总是先移除优先级最低的元素。(某些版本的优先级队列会先移除优先级最高的元素)
后置条件(postcondition):在执行程序的某个节点,该条件的计算结果为 true。子程序的后置条件在子程序执行结束后必须为 true。函数的后置条件通常表示为函数的返回值。
基本类型(primitive type):Java的8个内建基本数据类型有 double、float、long、int、short、byte、boolean 和 char。基本类型变量存储了真实的值,而非指向数值的指针。
线程优先级(priority of a thread):与线程关联的整数值,可以影响线程的执行顺序。优先级高的线程比优先级低的线程提前执行。
生产者/消费者(producer/consumer):并行编程中的一种经典模式,一个或多个生产者生产的产品被一个或更多的消费者使用。生产者和消费者设计为可以并行执行。这里的难点在于,如何安全、高效地从生产者向消费者非配产品。在Java中,通过阻塞队列实现生产者/消费者模式。
程序(program):用某种合适的编程语言编写的一组指令,由计算机执行。用做动词时,表示创建该指令的动作。
编程语言(programming language):用来为计算机编程的一种语言。编程语言的复杂性,从机器语言到像Java这样的高级语言跨度很大。
协议(protocol):在指定上下文中,构成合法通信的一组规范。协议中规定了合法的消息、传送的时间、期待的恢复类型等。
伪代码(pseudocode):非正式算法规范。与实际编程语言相比,伪代码更加接近英语。并且,通常无需明确地写出过程的每个细节。
队列(queue):由一组元素构成的数据结构。只能在列表的一头添加数据,在列表的另一头移除数据。
竞态条件(race condition):并行编程中可能的错误源。由于某个线程改变了第二个程序依赖的程序状态(比如变量值),从而引发错误。
RAM(Random Access Memory):随机访问内存。计算机主内存的同义词。然而,从技术角度看,RAM是指在任意时间内都可以同样访问内存地址。RAM也意味着可以同时读写数据。
递归(recursion):用自身的形式定义自己。特别地,递归子程序可以直接或通过一系列其它子程序间接调用自己。递归算法的工作方式,通过将一个复杂问题拆分成更小的子问题。子问题要么可以直接解决,要么可以“递归”使用相同的算法。
RGB:一种颜色系统。颜色由3个数值定义(在Java中,数值的范围从0到255)。分别表示颜色中的红色、绿色和蓝色组成。
引用(reference):“指针”的另一种称呼。
函数返回类型(return type of a function):函数返回值的类型。
保留字(关键字)(reserved word):一组字符串序列,看起来和标识符很像。但是由于在编程语言中有特殊含义,所以不能用作标识符。例如 class、public 是Java中的保留字。
资源(resource):图片、声音、文字或程序中的数据文件都是资源。Java资源文件与编译好的class文件存储在相同的路径(class path)。
健壮的程序(robust program):健壮的程序不仅正确,同时也能合理地处理错误,比如文件不存在或者无法建立网络连接。
集合(set):没有重复的一组对象。在Java中,集合用泛型接口 Set&T& 表示。
作用域(scope):表示程序中声明的标识符的有效作用域。
语义(semantics):语义是指,语言的语义规则决定了该语言中字符串符号(例如句子或语句)的含义。
哨兵值(sentinel value):表示数据序列结束的特殊标记,表明该数据已结束。
setter方法:类中的实例方法,用来设置类中的一些属性值。通常,这些属性只是实例变量值。按照惯例,setter 方法命名为 setXyz(),其中 xyz 是属性的名字。
方法签名(signature of a method):方法名、方法定义中形参的个数以及每个形参的类型。编译器通过方法签名来识别指定子程序调用语句究竟调用了哪个方法。
套接字(socket):网络上两个计算机之间的连接,对其中一端的抽象表示。套接字表示计算机程序间的一个逻辑连接,而非计算机间的物理连接。
栈(stack):一组元素组成的列表数据结构,只能在列表的尾部,也称作“栈顶”。向栈中添加元素叫“入栈 push”,移除元素称作“出栈 pop”。栈也指用来实现子程序调用的活动记录。
标准输入(standard input):程序读取输入数据的标准源,由 System.in 对象表示。通常,标准输入来自用户键入的文本,但是标准输出也可以重定向到其它源,比如文件。
标准输出(standard output):程序将输出文本写入的标准目标,由 System.out 对象表示。通常,标准输出会向用户展示,但是也可以“重定向”到其它目标,比如文件。此外,System.err 对象用来输出错误信息。
状态机(state machine):一种计算机模型。抽象的“机器”可处于有限状态集中的任何一种状态。机器会根据自身的状态决定行为,根据输入或事件进行状态切换。GUI程序的基本逻辑可表现为状态机。
逐步精化法(step-wise refinement):一种算法开发技术。开始列出算法步骤大纲,通常用伪代码表示,然后逐步填充细节。
流(stream):输入数据源或输出数据目标的抽象表示。Java为字符和二进制数据输入、输出流提供了4个基础类。这些类组成了Java I/O API的基础。
源代码(source code):用高级编程语言编写的文本。在计算机执行前,必须翻译成机器语言,比如Java字节码。
子类(subclass):一个类,直接或间接继承了其它类,从而继承了它的数据和行为。前一个类就叫做第二类的子类。
子程序(subroutine):一系列程序指令。通过子程序名可以“调用”该子程序。在面向对象编程中,子程序也称作方法。
子程序调用语句(subroutine call statement):程序中调用子程序的语句。当执行子程序调用语句时,计算机会执行子程序内部的代码。
super:一个特殊变量,在实例方法中自动定义。super指包含该方法的对象,归属于方法所在类的父类。super可以访问父类中被隐藏的成员变量,这些变量与子类中的成员变量同名。
语法(syntax):定义了该语言中哪些字符串符号符合该语言的语法规则。
TCP/IP:Internet上用来网络通讯的协议。
this:一个特殊变量,在实例方法中自动定义,归属于方法所在的类。
线程(thread):对一系列逐条执行语句的抽象表示。计算机可以并行执行多个线程。
线程池(thread pool):执行任务时可以使用的一组“工作线程”。当任务就绪时,可分配给池中的线程。线程池通常使用阻塞式队列存储任务。
自顶向下设计(top-down design):一种软件设计方法。开始把问题作为一个整体,然后拆分成更小的问题,再逐步细化,直到子问题可以直接解决。
类型(type):数值的特定类型。例如,int类型规定了整形值可以表示为32比特二进制数。在Java中,类型可以是基本类型、类名或接口名。类型名可用来定义变量的类型,子程序中的虚拟参数和子程序的返回类型。
类型转换(type cast):把一种类型的值强制转换为另一种类型。例如,在 (int)(6*Math.random()) 中,(int) 是一个类型转换操作,将 (6*Math.random()) 的浮点值转换为了整形,丢弃了实数中的小数部分。
Unicode:将字符编码成二进制数的一种方式。Unicode字符集包含了许多语言的字符,不仅限于英语。Java内部使用的就是Unicode字符集。
URL:全球资源定位器。Internet上资源的地址,比如网页。
变量(variable):一个带名字的内存位置(或一系列位置),用来存储数据。在程序中创建变量,通过变量声明语句将名字赋予该变量。根据使用情况,这个名字在程序中可以代指该内存位置,或者向内存地址中存储数据。在Java中,变量具有类型,可以表示变量持有数据的种类。
包装类(wrapper class):类似 Double、Integer这样的类,将一个基本类型的值“包装”在对象中,该对象归属于包装类。这样,在需要使用对象的地方也可以使用基本类型值,比如Java集合框架。
XML(eXtensible Markup Language):可扩展标记语言。一种非常常见且语法标准、支持良好的语言。用来创建基于文本的数据表示。
原文链接:
- 译文链接: [ 转载请保留原文出处、译者和译文链接。]
关于作者:
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其实我是一个程序员。(新浪微博:)
受教了,加油!
关于ImportNew
ImportNew 专注于 Java 技术分享。于日 11:11正式上线。是的,这是一个很特别的时刻 :)
ImportNew 由两个 Java 关键字 import 和 new 组成,意指:Java 开发者学习新知识的网站。 import 可认为是学习和吸收, new 则可认为是新知识、新技术圈子和新朋友……
新浪微博:
推荐微信号
反馈建议:ImportNew.
广告与商务合作QQ:
– 好的话题、有启发的回复、值得信赖的圈子
– 写了文章?看干货?去头条!
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 活跃 & 专业的翻译小组
– 国内外的精选博客文章
– UI,网页,交互和用户体验
– JavaScript, HTML5, CSS
– 专注Android技术分享
– 专注iOS技术分享
– 专注Java技术分享
– 专注Python技术分享
& 2018 ImportNew

我要回帖

更多关于 java代码翻译成swift 的文章

 

随机推荐