
正文
java代码讲解器 读懂java代码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
请问解析代码是什么?请举例说明?和解释器的具体关系如何体现? 不胜感谢……
计算机的cpu在生产出来就已经规定只能对某一些的二进制代码(机器码)进行操作java代码讲解器,比如两个数相加/减等,java代码讲解器他们都有固定的二进制操作码的。也就是说cpu只认得机器码。
但平时java代码讲解器我编程的时候一般都是用高级编程语言或汇编,写的都是一些有英文字母的,比如c/c++里有if else等,这cpu当然就不认识啦。
所以呢,我们用还有把高级语言写出来的源代码翻译成cpu能认识的机器码。这个翻译的过程就是编译了。
但实际上有些并不是直接就翻译成机器码的。比如vb、java。我想你应该听说过jre把,这是java的解析器。因为用java语言写出来的源代码用java的编译器javac编译后只能得到中间代码,cpu是不认得这中间代码的,但java解析器认得中间代码,而且能把中间代码翻译成cpu认得的机器码。这个过程就是解析了
相关问答
Q1: 请教一下JAVA中方法与对象的区别,写代码讲解一下
先简单地和楼主说下基础知识。
Java是一门纯粹面向对象的程序设计语言。类和对象是程序的基本组成要素。
类是某一批对象的抽象,可以把类理解成某种概念,对象才是具体存在的实体。举个例子,比如说水果。水果只是我们从苹果,香蕉,西瓜等等果类中抽象出来的一种概念。而苹果才是具体存在的东西。所以说水果是一个类,而苹果只是水果类里的一个对象。
java语言里定义类的简单语法如下java代码讲解器:
{修饰符} class 类名
{
零到多个成员属性。。
零到多个构造器。。
零到多个方法。。
}
从类的定义,可以知道“方法”是类的组成无素之一。
对象是类的实例,类是多个对象的的抽象。比如说面在有三个人,小明,小红,小李。这三个人都有共有的属性。姓名,年龄,身高。不论java代码讲解器你是大人,小人(别想歪啦O(∩_∩)O)。都会有姓名,年龄,身高。因此我们可以把这他们抽象成一个“人类”。姓名,年龄,身高就是“人类”的成员属性。而人都会说话(正常情况下)所以我们可以在人类里面定义一个说话的方法。或叫say()方法
现在我们就可以说小红,小李,小明,这三个人都是“人类”中的具体“对象”,这些对象都有一个say()方法,即,小红小李小明都会说话。
现在楼主能明白对象和方法的区别java代码讲解器了吧。其他理解起来很简单的。只要把类和对象的关系。以及类有哪些组成元素这两点理解好就能懂了。
说了一大堆,给楼主说下实例吧。代码如下:
//测试
public class Test {
public static void main(String[] args) {
//创建三个人类的对象
Person p1 = new Person("小明");
Person p2 = new Person("小红");
Person p3 = new Person("小李");
//三个对象都会说话
p1.say();
p2.say();
p3.say();
}
}
//定义一个人类
class Person {
//成员属性
String name;
//构造器
public Person(String name) {
this.name = name;
}
//说话的方法
public void say() {
System.out.println("我的名字叫:" + this.name);
}
}
运行结果如下:
我的名字叫:小明
我的名字叫:小红
我的名字叫:小李
Q2: java解析lrc文件代码
lrc可以通过如下util工具类进行转换java代码讲解器,如果想知道结果是否读取java代码讲解器的有问题,可以直接用记事本打开lrc文件的,之后和输出结果比对一下就行。
package com.routon.utils;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.util.Log;
/**
* parse lrc file tool
* eg:
* utilLrc lrc = new utilLrc("/sdcard/test.lrc");
* get song name : String title = lrc.getTitle();
* get performer name : String artist = lrc.getArtist();
* get album name: String album = lrc.getAlbum();
* get lrcmaker name: String lrcMaker = lrc.getLrcMaker();
* get song list: ListStatement list = lrc.getLrcList();
*
* @author xuweilin
*
*/
public class utilLrc {
private static String TAG = "utilLrc";
public class Statement {
private double time = 0.0; //time, 0.01s
private String lyric = ""; //song word
/*
* get time
*/
public double getTime() {
return time;
}
/*
* set time
*/
public void setTime(double time) {
this.time = time;
}
/*
* set time.format:mm:ss.ms
*/
public void setTime(String time) {
String str[] = time.split(":|\\.");
this.time = Integer.parseInt(str[0])*60+Integer.parseInt(str[1])+Integer.parseInt(str[2])*0.01;
}
/*
* get lrc word
*/
public String getLyric() {
return lyric;
}
/*
* set lrc word
*/
public void setLyric(String lyric) {
this.lyric = lyric;
}
}
private BufferedReader bufferReader = null;
private String title = "";
private String artist = "";
private String album = "";
private String lrcMaker = "";
private ListStatement statements = new ArrayListStatement();
/*
*
* fileName
*/
public utilLrc(String fileName) throws IOException{
FileInputStream file = new FileInputStream(fileName);
bufferReader = new BufferedReader(new InputStreamReader(file, "utf-8"));
readData();
}
/*
* read the file
*/
private void readData() throws IOException{
statements.clear();
String strLine;
while(null != (strLine = bufferReader.readLine()))
{
if("".equals(strLine.trim()))
{
continue;
}
if(null == title || "".equals(title.trim()))
{
Pattern pattern = Pattern.compile("\\[ti:(.+?)\\]");
Matcher matcher = pattern.matcher(strLine);
if(matcher.find())
{
title=matcher.group(1);
continue;
}
}
if(null == artist || "".equals(artist.trim()))
{
Pattern pattern = Pattern.compile("\\[ar:(.+?)\\]");
Matcher matcher = pattern.matcher(strLine);
if(matcher.find())
{
artist=matcher.group(1);
continue;
}
}
if(null == album || "".equals(album.trim()))
{
Pattern pattern = Pattern.compile("\\[al:(.+?)\\]");
Matcher matcher = pattern.matcher(strLine);
if(matcher.find())
{
album=matcher.group(1);
continue;
}
}
if(null == lrcMaker || "".equals(lrcMaker.trim()))
{
Pattern pattern = Pattern.compile("\\[by:(.+?)\\]");
Matcher matcher = pattern.matcher(strLine);
if(matcher.find())
{
lrcMaker=matcher.group(1);
continue;
}
}
int timeNum=0;
String str[] = strLine.split("\\]");
for(int i=0; istr.length; ++i)
{
String str2[] = str[i].split("\\[");
str[i] = str2[str2.length-1];
if(isTime(str[i])){
++timeNum;
}
}
for(int i=0; itimeNum;++i)
{
Statement sm = new Statement();
sm.setTime(str[i]);
if(timeNumstr.length)
{
sm.setLyric(str[str.length-1]);
}
statements.add(sm);
}
}
sortLyric();
}
/*
* judge the string is or not date format.
*/
private boolean isTime(String string)
{
String str[] = string.split(":|\\.");
if(3!=str.length)
{
return false;
}
try{
for(int i=0;istr.length;++i)
{
Integer.parseInt(str[i]);
}
}
catch(NumberFormatException e)
{
Log.e(TAG, "isTime exception:"+e.getMessage());
return false;
}
return true;
}
/*
* sort the word by time.
*/
private void sortLyric()
{
for(int i=0;istatements.size()-1;++i)
{
int index=i;
double delta=Double.MAX_VALUE;
boolean moveFlag = false;
for(int j=i+1;jstatements.size();++j)
{
double sub;
if(0=(sub=statements.get(i).getTime()-statements.get(j).getTime()))
{
continue;
}
moveFlag=true;
if(subdelta)
{
delta=sub;
index=j+1;
}
}
if(moveFlag)
{
statements.add(index, statements.get(i));
statements.remove(i);
--i;
}
}
}
/**
* get title
* @return
*/
public String getTitle(){
return title;
}
/**
* get artist
* @return
*/
public String getArtist(){
return artist;
}
/**
* get album
* @return
*/
public String getAlbum(){
return album;
}
/**
* get lrc maker
* @return
*/
public String getLrcMaker(){
return lrcMaker;
}
/**
* get song list
* @return
*/
public ListStatement getLrcList(){
return statements;
}
}
Q3: 编写一个Java程序,使用DOM解析器解析下列XML文件
用dom4j解析,非常快,具体怎么解析
SAXReader reader = new SAXReader();
String filePath = "c:/abc.xml";
File file = new File(filePath);
Document document = reader.read(file);// 读取XML文件
Element root = document.getRootElement();// 得到根节点
Element select = root.element("select");
for (Iterator i = select.nodeIterator(); i.hasNext();) {
Object obj = i.next();
String content = "";
if (obj instanceof Text) {
content = ((Text)obj).getText().replaceAll("\n", "").trim();
Q4: JAVA代码解析方法返回的XML数据,分别取出item标签中的值
package com;
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
public class TestXML {
public static void main(String[] args) {
StringBuffer sb=new StringBuffer("data");
sb.append("message");
sb.append("status6/status");
sb.append("value识别成功/value");
sb.append("/message");
sb.append("cardsinfo");
sb.append("card type='6'");
sb.append("item desc='保留'![CDATA[轻轻巧巧]]/item");
sb.append("item desc='号牌号码'![CDATA[*888084]]/item");
sb.append("/card");
sb.append("/cardsinfo");
sb.append("/data");
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder
.parse(new InputSource((new StringReader(sb.toString()))));
NodeList list = doc.getElementsByTagName("item");
System.out.println("------------节点item如下java代码讲解器:------------");
for (int i = 0; i list.getLength(); i++) {
Node book = list.item(i);
System.out.println("\t节点=" + i + "\t内容="
+ book.getFirstChild().getNodeValue());
}
System.out.println("------------结束------------");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Q5: JAVA计算器相关代码求大神{详解}
我给你找找
package com.bj.calcultor;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Calcultor extends Frame implements ActionListener {
public static void main(String[] args) {//定义主方
new Calcultor();//创建匿名对象,并调用test()方法;
}
//定义按钮名称
String[] arr={"1","2","3","4","5","6","7","8","9","0","+","-","*","/","=","."};
JButton [] button=new JButton[arr.length];
JButton reset = new JButton("CE");
JTextField display = new JTextField(20);
//创建窗口,定义组件
//执行窗口事件:关闭窗口
private class WindowCloser extends WindowAdapter {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
}
public Calcultor(){
super("计算器");//定义标题
//定义面板容器,并布局
JPanel jpanel=new JPanel(new GridLayout(4,4));
//添加按钮,并给按钮添加名称
for (int i = 0; i arr.length; i++) {
button[i]= new JButton(arr[i]);
jpanel.add(button[i]);
}
JPanel panel2 = new JPanel();
panel2.add("Northr", display);
display.setEnabled(false);
panel2.add("East", reset);
this.add("North", panel2);
this.add("Center", jpanel);
for (int i = 0; i arr.length; i++){
addWindowListener(new WindowCloser());
setVisible(true);
setSize(400,400);
pack();
button[i].addActionListener(this);
reset.addActionListener(this);
display.addActionListener(this);
}
}
@Override
public void actionPerformed(ActionEvent e) {//定义事件
// TODO Auto-generated method stub
Object target=e.getSource();
String lable=e.getActionCommand();
if(target==reset){
handleReset();
}else if("0123456789.".indexOf(lable)0){
handleNumber(lable);
}else{
hadleOperator(lable);
}
}
boolean isFirstDigit=true;
private void hadleOperator(String key) {
if(operator.equals("+")){
number += Double.valueOf(display.getText());
}else if (operator.equals("-")){
number -= Double.valueOf(display.getText());
}else if (operator.equals("*")){
number *= Double.valueOf(display.getText());
}else if (operator.equals("/")){
number /= Double.valueOf(display.getText());
}else if(operator.equals("=")){
number =Double.valueOf(display.getText());
}
display.setText(String.valueOf(number));
operator=key;
isFirstDigit=true;
}
private void handleNumber(String key) {
if(true){
display.setText(key);//把键值设置为文本框内容
}else if(key.equals(".") display.getText().indexOf(".")0){
display.setText(display.getText()+".");//把文本框内容设置:display.getText()+"."
}else if(!key.equals(".")){
display.setText(display.getText() + key);//把文本框内容设置:display.getText()+key
isFirstDigit=false;
}
}
private void handleReset() {
display.setText("0");
isFirstDigit=true;
operator="=";
}
String operator="=";
Double number=0.0;
}
关于java代码讲解器和读懂java代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







