「non-java」nonjavadoc
本篇文章给大家谈谈non-java,以及nonjavadoc对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java中的native关键字有什么作用
- 2、java怎么实现记事本的快捷键功能
- 3、java问题:非法表达式的开始
- 4、关于java的链表地址指向的问题
- 5、non-Javadoc 是什么意思
- 6、java 到底有几个main函数,这什么意思
java中的native关键字有什么作用
以下分三点来讲述一下java native:
1、什么是Native Method
简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。
"A native method is a Java method whose implementation is provided by non-java code."
在定义一个native method时,并不提供实现体(有些像定义一个java interface),因为其实现体是由非java语言在外面实现的。,下面给了一个示例:
public class IHaveNatives
{
native public void Native1( int x ) ;
native static public long Native2() ;
native synchronized private float Native3( Object o ) ;
native void Native4( int[] ary ) throws Exception ;
}
这些方法的声明描述了一些非java代码在这些java代码里看起来像什么样子(view).
标识符native可以与所有其它的java标识符连用,但是abstract除外。这是合理的,因为native暗示这些方法是有实现体的,只不过这些实现体是非java的,但是abstract却显然的指明这些方法无实现体。native与其它java标识符连用时,其意义同非Native Method并无差别,比如native static表明这个方法可以在不产生类的实例时直接调用,这非常方便,比如当你想用一个native method去调用一个C的类库时。上面的第三个方法用到了native synchronized,JVM在进入这个方法的实现体之前会执行同步锁机制(就像java的多线程。)
。这是
java怎么实现记事本的快捷键功能
很久之前自己写过的代码,你可以参考下
package 个人练习;
import java.awt.FileDialog;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Writer;
import java.sql.Savepoint;
import javax.swing.JFrame;
/**
* 创建一个类似记事本的程序
* 该程序拥有自己的书写窗口
* 可以自定义保存地址
* @author Administrator
*
*/
/*
* 创建记事本类
* 实现ActionListener接口
* 重写它的actionPerformed方法
*
*/
public class JiShiBen implements ActionListener {
//拥有自己的窗口
JFrame frame=new JFrame("记事本程序");
//菜单栏
MenuBar menubar=new MenuBar();
//创建下拉菜单
Menu wenjian=new Menu("文件");
//创建保存按钮
MenuItem dakai=new MenuItem("打开文件");
MenuItem baochun=new MenuItem("保存");
MenuItem xinjian=new MenuItem("新建");
//创建可以显示文本的多行区域
TextArea wenben=new TextArea();
//显示一个对话窗口,用户选择一个文件,如果模式是SAVE,则寻找一个地方去写入一个文件
FileDialog fd;
File file=null;
/*
* 创建jishiben的构造函数
*/
public JiShiBen(){
frame.setMenuBar(menubar);//将菜单栏关联到窗口
menubar.add(wenjian);//将下拉菜单添加到菜单栏
wenjian.add(xinjian);
wenjian.add(dakai);//将保存按钮添加到下拉菜单
wenjian.add(baochun);
dakai.addActionListener(this);//由baochuan按钮接受处理操作事件
baochun.addActionListener(this);
xinjian.addActionListener(this);
frame.add(wenben);//将文本区域添加到窗口
//设置窗口的属性
frame.setSize(600,480);
frame.setLocation(200, 200);
frame.setVisible(true);
/*
*
* 用于接收窗口事件的侦听器接口。
* 旨在处理窗口事件的类要么实现此接口(及其包含的所有方法),
* 要么扩展抽象类 WindowAdapter(仅重写所需的方法)。
* 然后使用窗口的 addWindowListener 方法将从该类所创建
* 的侦听器对象向该 Window 注册。
* 当通过打开、关闭、激活或停用、
* 图标化或取消图标化而改变了窗口状态时,
* 将调用该侦听器对象中的相关方法,
* 并将 WindowEvent 传递给该方法。
* windowClosing(WindowEvent e)
用户试图从窗口的系统菜单中关闭窗口时调用。
*
*/
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);//终止当前运行的java虚拟机
}
});
}
/*
* 实现ActionListener接口中的方法
* (non-Javadoc)
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==baochun){
//public Object getSource()最初发生 Event 的对象。 返回,最初发生 Event 的对象。
fd=new FileDialog(frame,"保存文本文件",FileDialog.SAVE);
/*
* FileDialog(Dialog parent, String title, int mode)
创建一个具有指定标题的文件对话框窗口,用于加载或保存文件。
static int LOAD
此常量值指示文件对话框窗口的作用是查找要读取的文件。
static int SAVE
此常量值指示文件对话框窗口的作用是查找要写入的文件。
*/
fd.setVisible(true);
//文件的存放位置是通过fd获取的位置,文件名是通过fd获取的文件名
file=new File(fd.getDirectory(), fd.getFile()+".txt");
save(file);
}
if(e.getSource()==dakai){
fd=new FileDialog(frame,"打开文件",FileDialog.LOAD);
fd.setVisible(true);
/*
* String getFile()
获取此文件对话框的选定文件。
String getDirectory()
获取此文件对话框的目录。
*/
file=new File(fd.getDirectory()+fd.getFile());
System.out.println(fd.getFile());
System.out.println(fd.getDirectory());
open(file);
}
if(e.getSource()==xinjian){
wenben.setText("");
}
}
/*
* 创建save方法
*/
public void save(File file){
try{
PrintWriter pw=new PrintWriter(file);
pw.write(wenben.getText());//wenben.getText()返回文本区域的文本
pw.close();
}catch(Exception e){
}
}
//创建open方法
public void open(File file){
try{
FileInputStream fis=new FileInputStream(file);
InputStreamReader isr=new InputStreamReader(fis);
BufferedReader br=new BufferedReader(isr);
String line=null;
while((line=br.readLine())!=null){
wenben.append(line+"\n");
}
br.close();
}catch(Exception e){
}
}
public static void main(String[] args) {
new JiShiBen();
}
}
java问题:非法表达式的开始
import java.applet.Applet;
import java.awt.*;
import java.util.Random;
public class SnowPic extends Applet implements Runnable {
/**
*
*/
private static final long serialVersionUID = 1L;
Thread mainThread;
Image offScreen, gAlc[];
Random rand;
int stopFlag, snows, wind, threadSleep, snowSize;
int[] snowX, snowY;
long stopTime = 0;
Dimension dim;
MediaTracker mt;
public SnowPic() {
}
int getParameter(String s1, int s2) {
String s = getParameter(s1);
return (s != null) ? Integer.parseInt(s) : s2;
}
int getParameter(String s1, int s2, int max, int min) {
String s = getParameter(s1);
if (s != null) {
if ((s2 = Integer.parseInt(s)) max)
return max;
else if (s2 min)
return min;
else
return s2;
} else
return s2;
}
String getParameter(String s1, String s2) {
String s = getParameter(s1);
return (s != null) ? s : s2;
}
public void init(){
rand = new Random();
dim = getSize();
offScreen =createImage(dim.width,dim.height);
snows = getParameter("snows",100,500,0);
snowSize = getParameter("snowSize",3,10,3);
threadSleep = getParameter("threadsleep",80,100,10);
snowX=new int[snows];
snowY=new int[snows];
for(int i=0;isnows;i++)
{
snowX[i]=rand.nextInt() % (dim.width /2)+dim.width/2;
snowY[i]=rand.nextInt() % (dim.height /2)+dim.height/2;
}
mt=new MediaTracker(this);
gAlc=new Image[1];
gAlc[0]=getImage(getDocumentBase(),getParameter("graphic","test.gif"));
mt.addImage(gAlc[0],0);
}
public void start()
{
if(mainThread != null)
{
mainThread=new Thread(this);
mainThread.start();
}
}
public void stop()
{
mainThread=null;
}
public void run()
{while (mainThread!=null)
{try
{Thread.sleep(threadSleep);
}
catch(Exception ex) {return;}
repaint();
}
}
public void drawBackSnow(Graphics g)
{g.setColor(Color.white);
for(int i=0;isnows;i++)
{g.fillOval(snowX[i],snowY[i],snowSize,snowSize);
snowX[i]+=rand.nextInt()%2+wind;
snowY[i]+=(rand.nextInt()%6+5)/5+1;
if(snowX[i]=dim.width) snowX[i]=0;
if(snowX[i]0) snowX[i]=dim.width-1;
if(snowY[i]=dim.height||snowY[i]0);
{snowX[i]=Math.abs(rand.nextInt()%dim.width);
snowY[i]=0;
}
}
wind=rand.nextInt()%5-2;
}
public void paint(Graphics g)
{offScreen.getGraphics().setColor(Color.black);
offScreen.getGraphics().fillRect(0,0,dim.width,dim.height);
offScreen.getGraphics().drawImage(gAlc[0],0,0,this);
drawBackSnow(offScreen.getGraphics());
g.drawImage(offScreen,0,0,null);
}
public void update(Graphics g)
{
paint(g);
}
/*
* (non-Javadoc)
*
* @see java.lang.Runnable#run()
*/
}
关于java的链表地址指向的问题
在java中 比如,String str1 ="abc",在虚拟机内会开辟一段空间存放“abc”,但是你再次给 str1赋值,str1就会只想新开辟存储的空间的位置,而原来abc的位置,在不被使用的情况先会被java回收机制清空。如你说的,开始 current =head,但是并有head=XX的动作,说明没有给head赋值,所以head不会变,而一直有current赋值,所以current一直指向新的空间,而这些是与head无关的动作。PS: 下面代码太长没看
non-Javadoc 是什么意思
没有javadoc,就是当前方法没有自己的注释
@see就是,用@see后面跟的类的方法的注释作为当前方法的注释
例如可以这么写:
/* (non-Javadoc)
* @see com.xiaoxiang.common.util.IPageSupport#hasPreviousPage()
*/
java 到底有几个main函数,这什么意思
一个java文件只能有一个main函数! 类可以有多个,但是public class也只能有一个
关于non-java和nonjavadoc的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。