1.[http://www.javaalmanac.com] Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处.
2.[http://www.onjava.com] OReilly的Java网站. 每周都有新文章.
3.[http://java.sun.com] 官方的Java开发者网站 每周都有新文章发表.
4.[http://www.developer.com/java] 由Gamelan.com 维护的Java技术文章网站.
5.[http://www.java.net] Sun公司维护的一个Java社区网站.
6.[http://www.builder.com] Cnet的Builder.com网站 所有的技术文章, 以Java为主.
7.[http://www.ibm.com/developerworks/java] IBM的Developerworks技术网站; 这是其中的Java技术主页.
8.[http://www.javaworld.com] 最早的一个Java站点. 每周更新Java技术文章.
9.[http://www.devx.com/java] DevX维护的一个Java技术文章网站.
10.[http://www.fawcette.com/javapro] JavaPro在线杂志网站.
11.[http://www.sys-con.com/java] Java Developers Journal的在线杂志网站.
12.[http://www.javadesktop.org] 位于Java.net的一个Java桌面技术社区网站.
13.[http://www.theserverside.com] 这是一个讨论所有Java服务器端 ......
Java本地接口(Java Native Interface (JNI))允许运行在Java虚拟机(Java Virtual
Machine (JVM))上的代码调用本地程序和类库,或者被它们调用,这些程序和类库可以是其它语言编写的,比如C、C++或者汇编语言。
当一个程序无法完全使用Java编写时,开发者可以通过JNI来编写本地方法,比如标准Java类库并不支持的依赖于平台的特色或者程序库。JNI还可以用于修改现有的使用其它语言编写的程序,使它们可以通过Java编写的程序来访问。
很多基本类库都依赖JNI来为开发者和用户提供服务,比如文件的输入/输出和音频功能。在基本类库中包含的对于性能和平台敏感的API可以允许
所有的Java程序以安全和平台无关的方式来使用这些功能,在采用JNI之前,开发者需要明确这些功能并不是已经包含在Java标准类库中的,在这篇文章
中,我将会讲解JNI是如何工作的以及本地类型是如何映射到Java的类型和类库的。
JNI工作原理
在JNI中,本地函数是通过一个独立的.c或.cpp文件来实现的(C++为JNI提供的界面会更简洁一些)。当JVM调用该函数时,它传递了一个JNIEnv指针、一个jobject指针和通过Java方法定义的Java参数,JNI函数的形式如下:
JNIEXPORT void JNICALL ......
整理关于java的String
类,equals函数和比较操作符的区别
初学 Java
有段时间了,感觉似乎开始入了门,有了点儿感觉但是发现很多困惑和疑问而且均来自于最基础的知识折腾了一阵子又查了查书,终于对 String
这个特殊的对象有了点感悟大家先来看看一段奇怪的程序:
public class TestString {
public static void main(String[] args) {
String s1 = "Monday";
String s2 = "Monday";
}
}
这个程序真是简单啊!可是有什么问题呢?
1. 来自 String 的忧虑上面这段程序中,到底有几个对象呢?
可能很多人脱口而出:两个,s1 和 s2为什么?String 是 final
类,它的值不可变。看起来似乎很有道理,那么来检测一下吧,稍微改动一下程序就可以看到结果了:
public class TestString {   ......
概述:本示例实现对象按年龄升序 人气升序排序功能 姓名升序 降序排序功能
package ch02;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* @author YaoShiyou 实现对象排序
*
*/
public class Person {
// 姓名
private String name;
// 年龄
private int age;
// 人气
private int hobby;
public Person(String name) {
this.name = name;
}
public Person(String name, int age) {
this(name);
this.age = age;
}
public Person(String name, int age, int hobby) {
this(name, age);
this.hobby = hobby;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
thi ......
传智播客_张孝祥_Java基础3_面向对象上_学习笔记
1.什么是类,什么是对象,以前上课的时候一直不懂,现在我懂了,
类就是一个框架,而对象就是根据这种框架构建出来的的实例。也可以像张老师说的那样,类就是一类物体的图纸,而对象就是根据这张图纸制作出来的事物。
2.当方法里定义的局部变量名与类成员变量名相同时,在方法里类成员变量名将被隐藏。
3.对象的建立:
类型名 引用名 = new 类名();
引用名就是在占内存中建立的一个引用,来引用的在堆内存所建立的对象。
4."=="用于比较值是否相等,"equals"用于比较引用所对应的对象内容是否相等。
5.'private'私有的,只能在本类中使用所定义的变量。如果想用JAVA虚拟机运行某个类,就在该类中必须有main函数。
6.每个类就是一个模块, 在编写类时应该隐藏一些无需告诉别人的成员变量,公开必须让人知道的方法
7.同个类定义的对象,可以互相访问对方的私有成员变量,但是该对象必须在类中。
8.
l 构造函数不能有返回类型
l 与类名相同
l 不能有返回原句
......
骨头的程序是JAVA写的,赵工的AI库是一个lib,那么强大不用太可惜了,容我想想......
简单来说:
0-Java 建立需求函数模板
1-使用 javah xxx.class 工具生成.h文件
2-把jni.h、jni_md.h和刚才生成的.h文件放到VS建立的dll空项目里
3-生成可以调用的dll
大功告成
详细点:
例如你要用dll 实现一个Max()函数的功能,先把这个文件编译成class文件
然后用 javah 生成.h 文件
public class TestNative {
private native static int Max(int a, int b);
static {
System.loadLibrary("VCdll");
}
public static void main(String[] args) {
System.out.println(Max(4, 5));
}
}
visual Studio 里:
0-新建->Win32->Win32项目->起个名mydll->下一步->DLL和空项目->完成
1-把jni.h、jni_md.h和刚才生成的.h文件放到头文件里
2-添加新项目->新建c++文件->cpp文件里引用刚才生成的.h文件->实现相关方法->
3-生成dll
4-放在java文件目录下,ok ......