- 浏览: 274543 次
- 性别:
- 来自: 武汉
文章分类
--java
1,类的关系
• Dependence (“uses–a”):依赖,一个类use另一个类
• Aggregation (“has–a”):聚合,一个类中的成员是另一个类
• Inheritance (“is–a”):继承
extra:关于Association以及Aggregation和Composition
从代码实现的角度上讲:三者都是以属性出现,
其中Association中作为属性出现时,不需要对其进行强制赋值,只要在使用是对其进行初始化即可。
Aggregation中作为属性出现时,需要在构造器中通过传递参数来对其进行初始化。Composition中作为属性出现时,需要在整体的构造器中创建部分的具体实例,完成对其的实例化。
从数据库的层面上来讲:
Association不需要被级联删除,
Aggregation不需要被级联删除,
Composition是需要被级联删除的。
2, 关于java日期类的一些使用方法(Calendar,GregorianCalendar)
创建日期对象: Calendar d = new GregorianCalendar();
- 今天是这个月的几号:d.get(Calendar.DAY_OF_MONTH)
- 得到这个星期的星期几(周日开始1-7):d.get(Calendar.DAY_OF_WEEK)
- 一周的第一天:d.getFirstDayOfWeek()
- 前进/后退一天:d.add(Calendar.DAY_OF_MONTH,1)/d.add(Calendar.DAY_OF_MONTH,-1);
- 这个月的月份:d.get(Calendar.MONTH)
...待续
3, java的方法
- 注意定义setter方法的时候,将返回的对象先克隆:
class A
{
. . .
public Date getDate()
{
return day;
}
. . .
private Date hireDay;
}
和
class A
{
. . .
public Date getHireDay()
{
return (Date) day.clone();
}
. . .
}
- 设计者定义私有方法是因为不希望在外部使用它,并且能够方便的丢弃掉;
- 使用静态方法:当不需要访问对象状态时,当仅需要访问静态成员时;
- java中方法参数传递不是传引用,而是将引用进行传值,方法不能改变原类型的值,可以改变对象状态,不能使一个对象引用到另一个对象;
4, 类的设计原则
- 保持数据是private
- 总是要初始化数据
- 不要再类中使用过多的基本类型数据
- 不用所有的数据成员都设置get set 方法
- 定义class标准顺序:public features - package scope features - private features
而在每一块内又可这样:instance methods - static methods - instance fields -
static fields
- 将职责过大的class 分成多个class
- 为类和方法起有意义的名字
-- Java数据类型,操作符以及流程控制
1,包装器类
Integer, Long, Float, Double, Short, Byte, Character, Void, and Boolean, 前六个继承自Number类;
包装器类 是不可变的包装后就不能改变值,他们也是final的 不能被继承;
2,对象类,基本类型间的转换
Ingeter -> int: IngeterObject.intValue()
Integer -> String: Ingeter.toString(int i)/ toString(int i, int radix)
String -> int: Integer.parseInt(String s)/parseint(String s, int radix)
String -> Integer: Integer.valueOf(String s)/valueOf(String s, int radix)
String -> Number: IngeterObject.parse(String s)
3,enum类型
可以有构造函数,方法,成员,
public enum EnumTest {
TEST1("ONE"), TEST2("TWO"), TEST3("THREE");
private EnumTest(String s){
this.ss =s;
}
public String getSS(){
return this.ss;
}
private String ss;
public static void main(String[] args) {
TestEnum.main(null);
}
}
class TestEnum{
public static void main(String[] args) {
System.out.println(EnumTest.TEST1.toString()); //TEST1
System.out.println(EnumTest.TEST1.getSS()); //ONE
EnumTest etest =Enum.valueOf(EnumTest.class, "TEST1");
System.out.println(EnumTest.values()); //return EnumTest[]
}
}
-- Java继承,封装与多态
1.java的抽象类和接口
抽象类:
-如果abstract类中有一个方法未被子类实现,那么这个类仍是一个abstract类(只要还存在一个abstract的成员或方法,那么类必须被abstract修饰);
-abstract类的成员默认是default类型并且可以被继承;
-只能是单重继承;
以上提到abstract类不可以被实例化,但是可以讲其数组化:
Abstract class A{
public int a;
abstract int getInt();
public static void main(String[] args) {
A abs = new A(); // fail
A[] abs = new A[2]; //passed
}
}
注: 此规则一样适用于interface;
接口:
- 接口本身的访问权限和class一样,具有全局,包,保护,私有(inner class)
- interface中的成员默认就是 public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值;
- interface中的方法默认都是 public,abstract 类型的。
- 可以多个一起被实现;
- 实现了一个interface那么必须实现它的所有方法,方法是public的;
2, final
一个class是final的, 那么它的方法也自动是final的,,但是成员不是自动final
3, A是父类, B继承自A,A 有方法f1,f2, B有方法f2,f3 (都是public的情况)
test1:
A a = new A(); //declare和reference都是A
a.f1;
a.f2; //执行A的f1 和f2
B b =(B)a; //A cast to B, 此时编译不会报错,但是运行报错;可以使用instanceof 来检测,b instanceof A , 此时是false;
test2:
A a = new B(); //这是指向B的内存区域的
a.f1; // 调用B中的 f1
a.f2; //B中被覆写的f2
a.f3; //无法调用这个
B b =(B)a;
b.f1;
b.f2;
b.f3; //f1,f2,f3调用B的 正常无错误
test3:
B b = new B();
b.f1;
b.f2;
b.f3; //正常调用
A a = b;
a.f1;
a.f2; //以上2个正常
a.f3; //这个无法调用
test4:
B b = (B) new A(); //编译通过,运行报错; 比较奇葩
test5:
B b = new B();
A a = (A)b;
a.f1; //调用B的f1
a.f2; // 调用B的f2
a.f3; //无法调用
继续实验加上一个C类继承自B,即B的子类, 提供方法f1,f3,f4
test6:
A a = new C();
a.f1; // 调用C中的 f1
a.f2; // 调用C的f2
a.f3; //
a.f4; //无法调用后2个
C c =(C)a;
c.f1; // C的f1
c.f2; // B的
c.f3; // C的
c.f4; //C的
test7:
C c = new C();
c.f1;
c.f2;
c.f3;
c.f4; //正常调用
A a = c;
a.f1; //C的f1
a.f2; //C的f2
a.f3;
a.f4; //后2个无法调用
test8:
C c = new C();
A a = (B)c;
a.f1;
a.f2; //C的f1, f2
a.f3;
a.f4; //后2个无法调用
其他的基本相同,逻辑差不多;
4, 父类A中的私有变量在子类B中的访问
class A {
private String s = "";
A(String ss) {
this.s = ss;
}
public String getS() {
return this.s;
}
}
public class B extends A {
private String s="";
B(String ss, String ss2) {
super(ss);
this.s = ss2;
}
public static void main(String[] args) {
B b = new B("123","456");
System.out.println(b.getS());
}
}
结果: 123
原因:父类的方法在子类中继承,实际是子类对父类方法的一个引用,如果子类中有方法(getS)覆写了父类中继承来的方法(getS), 那么结果是456;
5,构造函数和继承
- 当类没有声明构造函数的时候,编译器会自动生成一个无参构造函数,将所有实例成员设置成默认值;如果有构造函数就不会自动生成默认无参构造;
- 子类只继承父类的默认构造函数,即无形参构造函数。如果父类没有默认构造函数,那子类不能从父类继承到任何构造函数。
- 子类从父类处继承来的父类默认构造函数,不能成为子类的默认构造函数。
- 创建对象时,先调用父类默认构造函数对对象进行初始化,然后调用子类自身自己定义的构造函数。
extra:子类继承的时候,必须调用父类的构造函数;这时它会默认调用继承父类的无参构造函数;如果父类没有默认无参构造函数,那么只能在子类构造函数第一行加super(XXX)来调用显示调用父类构造函数;
6,关于继承的一些有用建议:
- 公共的operation或fields,放在父类中
- 不要使用protected的field
- 继承应用到“is-a”模型中
- 除非继承的方法有意义,否则别用继承
- 当覆盖一个方法的时候不要改变它预期的行为
- 利用多态性,而不是用类型信息来判断
- 不要过度使用反射
7, 构造函数的基本执行顺序 (无静态情况,静态最优先)
- 所有数据成员被初始化为默认值(0, false, or null).
- 按照声明顺序初始化 块 中的所有成员.
- 如果调用的构造函数第一行调用了另外一个构造函数,那么第二个构造函数执行.
- 调用的构造函数执行.
-- 反射
1,得到Class的几种途径
Class cl = e.getClass();
Class cl = Class.forName(className);
Class cl1 = Date.class; or Class cl2 = int.class;
注:比较两个Class类型相等 直接用==
2,创建对象
Class.newInstance() 调用默认构造函数
一些snippet:
1,Modifier.toString(m.getModifiers()) 得到修饰符
2,
{
String brackets = "";
while (cls.isArray()) { // 转化多维数组时
brackets += "[]";
cls = cls.getComponentType();
}
String full_name = cls.getName();
int pos = full_name.lastIndexOf('.');
if (pos != -1)
full_name = full_name.substring(pos + 1);
return full_name + brackets;
}
3,
注:getFields, getMethods, and getConstructors 得到public的,并且可以得到父类的public的method和field但是不能得到constructor;getDeclaredFields, getDeclaredMethods, and getDeclaredConstructors能得到本类中声明的所有的方法成员和构造函数;
-- 克隆对象
clone三部曲。
1 声明实现Cloneable接口。
2 调用super.clone拿到一个对象,如果父类的clone实现没有问题的话,在该对象的内存存储中,所有父类定义的field都已经clone好了,该类中的primitive和不可变类型引用也克隆好了,可变类型引用都是浅copy。
3 把浅copy的引用指向原型对象新的克隆体。
考虑一个类对clone的态度,有如下几种。
1 公开支持:好吧,按照clone三部曲实现吧。前提是父类支持(公开或者默默)。
2 默默支持:不实现Cloneable接口,但是在类里面有正确的protected的clone实现,这样,该类不支持clone,但是它的子类如果想支持的话也不妨碍。
3 不支持:好吧,为了明确该目的,提供一个抛CloneNotSupportedException 异常的protected的clone实现。
4 看情况支持:该类内部可以保存其他类的实例,如果其他类支持则该类支持,如果其他类不支持,该类没有办法,只有不支持。
-- 内部类
使用内部类的理由:
- 内部类能够访问定义它们的类中的数据,包括private的
- 同一包中的内部类能够被其他类(外部)给隐藏起来
- 当你想定义回调函数时,使用匿名内部类将非常方便,使你不用编写很多代码.
内部类持有外部类的引用,在内部类的默认构造函数中会创建一个到外部类的引用;
默认构造函数类似这样:
public Inner(Outer out) // automatically generated code
{
this.outer = out;
}
-- 代理
-- 容器类
1,数组和列表
数组大小确定后,内部自动赋值,但是list创建的时候指定大小,如果里面不存值便不占用存储空间:
int[] array = new int[100];
ArrayList<Integer> list = new ArrayList<Integer>(100);
array[50]=4; // 第50个元素设置为4
list.add(50,4); // fail, 目前list大小为0, 不能加入第50个item,要从头开始添加;
for(int a : array)
System.out.println(a); //第50个为4,其余为0
-- 其他
1.Eclipse 遇到错误提示“Failed to create the Java Virtual Machine ”
问题解决:
找到eclipse目录下的eclipse.ini 编辑这段:
--launcher.XXMaxPermSize
256M //也可能其他值 改成128M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m //也可能其他值 改成128M
1,类的关系
• Dependence (“uses–a”):依赖,一个类use另一个类
• Aggregation (“has–a”):聚合,一个类中的成员是另一个类
• Inheritance (“is–a”):继承
extra:关于Association以及Aggregation和Composition
从代码实现的角度上讲:三者都是以属性出现,
其中Association中作为属性出现时,不需要对其进行强制赋值,只要在使用是对其进行初始化即可。
Aggregation中作为属性出现时,需要在构造器中通过传递参数来对其进行初始化。Composition中作为属性出现时,需要在整体的构造器中创建部分的具体实例,完成对其的实例化。
从数据库的层面上来讲:
Association不需要被级联删除,
Aggregation不需要被级联删除,
Composition是需要被级联删除的。
2, 关于java日期类的一些使用方法(Calendar,GregorianCalendar)
创建日期对象: Calendar d = new GregorianCalendar();
- 今天是这个月的几号:d.get(Calendar.DAY_OF_MONTH)
- 得到这个星期的星期几(周日开始1-7):d.get(Calendar.DAY_OF_WEEK)
- 一周的第一天:d.getFirstDayOfWeek()
- 前进/后退一天:d.add(Calendar.DAY_OF_MONTH,1)/d.add(Calendar.DAY_OF_MONTH,-1);
- 这个月的月份:d.get(Calendar.MONTH)
...待续
3, java的方法
- 注意定义setter方法的时候,将返回的对象先克隆:
class A
{
. . .
public Date getDate()
{
return day;
}
. . .
private Date hireDay;
}
和
class A
{
. . .
public Date getHireDay()
{
return (Date) day.clone();
}
. . .
}
- 设计者定义私有方法是因为不希望在外部使用它,并且能够方便的丢弃掉;
- 使用静态方法:当不需要访问对象状态时,当仅需要访问静态成员时;
- java中方法参数传递不是传引用,而是将引用进行传值,方法不能改变原类型的值,可以改变对象状态,不能使一个对象引用到另一个对象;
4, 类的设计原则
- 保持数据是private
- 总是要初始化数据
- 不要再类中使用过多的基本类型数据
- 不用所有的数据成员都设置get set 方法
- 定义class标准顺序:public features - package scope features - private features
而在每一块内又可这样:instance methods - static methods - instance fields -
static fields
- 将职责过大的class 分成多个class
- 为类和方法起有意义的名字
-- Java数据类型,操作符以及流程控制
1,包装器类
Integer, Long, Float, Double, Short, Byte, Character, Void, and Boolean, 前六个继承自Number类;
包装器类 是不可变的包装后就不能改变值,他们也是final的 不能被继承;
2,对象类,基本类型间的转换
Ingeter -> int: IngeterObject.intValue()
Integer -> String: Ingeter.toString(int i)/ toString(int i, int radix)
String -> int: Integer.parseInt(String s)/parseint(String s, int radix)
String -> Integer: Integer.valueOf(String s)/valueOf(String s, int radix)
String -> Number: IngeterObject.parse(String s)
3,enum类型
可以有构造函数,方法,成员,
public enum EnumTest {
TEST1("ONE"), TEST2("TWO"), TEST3("THREE");
private EnumTest(String s){
this.ss =s;
}
public String getSS(){
return this.ss;
}
private String ss;
public static void main(String[] args) {
TestEnum.main(null);
}
}
class TestEnum{
public static void main(String[] args) {
System.out.println(EnumTest.TEST1.toString()); //TEST1
System.out.println(EnumTest.TEST1.getSS()); //ONE
EnumTest etest =Enum.valueOf(EnumTest.class, "TEST1");
System.out.println(EnumTest.values()); //return EnumTest[]
}
}
-- Java继承,封装与多态
1.java的抽象类和接口
抽象类:
-如果abstract类中有一个方法未被子类实现,那么这个类仍是一个abstract类(只要还存在一个abstract的成员或方法,那么类必须被abstract修饰);
-abstract类的成员默认是default类型并且可以被继承;
-只能是单重继承;
以上提到abstract类不可以被实例化,但是可以讲其数组化:
Abstract class A{
public int a;
abstract int getInt();
public static void main(String[] args) {
A abs = new A(); // fail
A[] abs = new A[2]; //passed
}
}
注: 此规则一样适用于interface;
接口:
- 接口本身的访问权限和class一样,具有全局,包,保护,私有(inner class)
- interface中的成员默认就是 public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值;
- interface中的方法默认都是 public,abstract 类型的。
- 可以多个一起被实现;
- 实现了一个interface那么必须实现它的所有方法,方法是public的;
2, final
一个class是final的, 那么它的方法也自动是final的,,但是成员不是自动final
3, A是父类, B继承自A,A 有方法f1,f2, B有方法f2,f3 (都是public的情况)
test1:
A a = new A(); //declare和reference都是A
a.f1;
a.f2; //执行A的f1 和f2
B b =(B)a; //A cast to B, 此时编译不会报错,但是运行报错;可以使用instanceof 来检测,b instanceof A , 此时是false;
test2:
A a = new B(); //这是指向B的内存区域的
a.f1; // 调用B中的 f1
a.f2; //B中被覆写的f2
a.f3; //无法调用这个
B b =(B)a;
b.f1;
b.f2;
b.f3; //f1,f2,f3调用B的 正常无错误
test3:
B b = new B();
b.f1;
b.f2;
b.f3; //正常调用
A a = b;
a.f1;
a.f2; //以上2个正常
a.f3; //这个无法调用
test4:
B b = (B) new A(); //编译通过,运行报错; 比较奇葩
test5:
B b = new B();
A a = (A)b;
a.f1; //调用B的f1
a.f2; // 调用B的f2
a.f3; //无法调用
继续实验加上一个C类继承自B,即B的子类, 提供方法f1,f3,f4
test6:
A a = new C();
a.f1; // 调用C中的 f1
a.f2; // 调用C的f2
a.f3; //
a.f4; //无法调用后2个
C c =(C)a;
c.f1; // C的f1
c.f2; // B的
c.f3; // C的
c.f4; //C的
test7:
C c = new C();
c.f1;
c.f2;
c.f3;
c.f4; //正常调用
A a = c;
a.f1; //C的f1
a.f2; //C的f2
a.f3;
a.f4; //后2个无法调用
test8:
C c = new C();
A a = (B)c;
a.f1;
a.f2; //C的f1, f2
a.f3;
a.f4; //后2个无法调用
其他的基本相同,逻辑差不多;
4, 父类A中的私有变量在子类B中的访问
class A {
private String s = "";
A(String ss) {
this.s = ss;
}
public String getS() {
return this.s;
}
}
public class B extends A {
private String s="";
B(String ss, String ss2) {
super(ss);
this.s = ss2;
}
public static void main(String[] args) {
B b = new B("123","456");
System.out.println(b.getS());
}
}
结果: 123
原因:父类的方法在子类中继承,实际是子类对父类方法的一个引用,如果子类中有方法(getS)覆写了父类中继承来的方法(getS), 那么结果是456;
5,构造函数和继承
- 当类没有声明构造函数的时候,编译器会自动生成一个无参构造函数,将所有实例成员设置成默认值;如果有构造函数就不会自动生成默认无参构造;
- 子类只继承父类的默认构造函数,即无形参构造函数。如果父类没有默认构造函数,那子类不能从父类继承到任何构造函数。
- 子类从父类处继承来的父类默认构造函数,不能成为子类的默认构造函数。
- 创建对象时,先调用父类默认构造函数对对象进行初始化,然后调用子类自身自己定义的构造函数。
extra:子类继承的时候,必须调用父类的构造函数;这时它会默认调用继承父类的无参构造函数;如果父类没有默认无参构造函数,那么只能在子类构造函数第一行加super(XXX)来调用显示调用父类构造函数;
6,关于继承的一些有用建议:
- 公共的operation或fields,放在父类中
- 不要使用protected的field
- 继承应用到“is-a”模型中
- 除非继承的方法有意义,否则别用继承
- 当覆盖一个方法的时候不要改变它预期的行为
- 利用多态性,而不是用类型信息来判断
- 不要过度使用反射
7, 构造函数的基本执行顺序 (无静态情况,静态最优先)
- 所有数据成员被初始化为默认值(0, false, or null).
- 按照声明顺序初始化 块 中的所有成员.
- 如果调用的构造函数第一行调用了另外一个构造函数,那么第二个构造函数执行.
- 调用的构造函数执行.
-- 反射
1,得到Class的几种途径
Class cl = e.getClass();
Class cl = Class.forName(className);
Class cl1 = Date.class; or Class cl2 = int.class;
注:比较两个Class类型相等 直接用==
2,创建对象
Class.newInstance() 调用默认构造函数
一些snippet:
1,Modifier.toString(m.getModifiers()) 得到修饰符
2,
{
String brackets = "";
while (cls.isArray()) { // 转化多维数组时
brackets += "[]";
cls = cls.getComponentType();
}
String full_name = cls.getName();
int pos = full_name.lastIndexOf('.');
if (pos != -1)
full_name = full_name.substring(pos + 1);
return full_name + brackets;
}
3,
注:getFields, getMethods, and getConstructors 得到public的,并且可以得到父类的public的method和field但是不能得到constructor;getDeclaredFields, getDeclaredMethods, and getDeclaredConstructors能得到本类中声明的所有的方法成员和构造函数;
-- 克隆对象
clone三部曲。
1 声明实现Cloneable接口。
2 调用super.clone拿到一个对象,如果父类的clone实现没有问题的话,在该对象的内存存储中,所有父类定义的field都已经clone好了,该类中的primitive和不可变类型引用也克隆好了,可变类型引用都是浅copy。
3 把浅copy的引用指向原型对象新的克隆体。
考虑一个类对clone的态度,有如下几种。
1 公开支持:好吧,按照clone三部曲实现吧。前提是父类支持(公开或者默默)。
2 默默支持:不实现Cloneable接口,但是在类里面有正确的protected的clone实现,这样,该类不支持clone,但是它的子类如果想支持的话也不妨碍。
3 不支持:好吧,为了明确该目的,提供一个抛CloneNotSupportedException 异常的protected的clone实现。
4 看情况支持:该类内部可以保存其他类的实例,如果其他类支持则该类支持,如果其他类不支持,该类没有办法,只有不支持。
-- 内部类
使用内部类的理由:
- 内部类能够访问定义它们的类中的数据,包括private的
- 同一包中的内部类能够被其他类(外部)给隐藏起来
- 当你想定义回调函数时,使用匿名内部类将非常方便,使你不用编写很多代码.
内部类持有外部类的引用,在内部类的默认构造函数中会创建一个到外部类的引用;
默认构造函数类似这样:
public Inner(Outer out) // automatically generated code
{
this.outer = out;
}
-- 代理
-- 容器类
1,数组和列表
数组大小确定后,内部自动赋值,但是list创建的时候指定大小,如果里面不存值便不占用存储空间:
int[] array = new int[100];
ArrayList<Integer> list = new ArrayList<Integer>(100);
array[50]=4; // 第50个元素设置为4
list.add(50,4); // fail, 目前list大小为0, 不能加入第50个item,要从头开始添加;
for(int a : array)
System.out.println(a); //第50个为4,其余为0
-- 其他
1.Eclipse 遇到错误提示“Failed to create the Java Virtual Machine ”
问题解决:
找到eclipse目录下的eclipse.ini 编辑这段:
--launcher.XXMaxPermSize
256M //也可能其他值 改成128M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m //也可能其他值 改成128M
发表评论
-
获取几种项目路径的方式(Done)
2013-10-09 11:20 1011// 第一种:获取类加载的根路径 D:\git\daoti ... -
Spring 学习笔记-1
2013-07-23 13:51 879一,Maven配置 <dependency> &l ... -
Github问题
2013-07-03 10:28 1156错误提示: The current branch is not ... -
java Final 关键字
2013-03-07 10:21 8001、final类不能被继承,没有子类,final类中的方法默认 ... -
Java中的Enum用法介绍
2013-01-10 17:17 106611. 关于Java Enum: JDK1.5之前没有Enum ... -
Eclipse WTP 配置tomcat 但无法访问tomcat主页的解决方法
2013-01-07 14:07 1403首先,在Eclipse的servers view下双击要配置的 ... -
JACOB API
2012-12-21 14:37 623901.import com.jacob.activeX.Act ... -
JAVA 使用 JACOB包 调用.NET DLL(测试连接成功)
2012-12-21 14:36 102921,大概步骤 1) 准备好 ... -
(Done)关于 instance of
2012-07-19 10:26 9881. “String” instanceof Object - ... -
启动tomcat 7 一闪而过
2012-06-06 23:12 8195问题概述: 在win7下,,点击startup.bat , 命 ... -
java的final和static总结
2012-05-15 23:53 989一、final 根据程序上下文环境,Java关键字final ... -
关于String的 split方法
2012-04-28 10:35 11371、如果用“.”作为分隔的话,必须是如下写法:String.s ... -
int 和 String 互相转换的多种方法
2012-02-29 16:38 8361 如何将字串 String 转换成整数 int? A. 有 ... -
Eclipse External Tools --变量设置
2012-01-09 14:18 11204外部工具的输出显示在控制台视图中。 在配置外部工具时可使用如 ... -
java的System.getProperty()方法可以获取的值
2011-12-26 14:30 4936java.version Java 运 ... -
java的comparable接口和comparator
2011-12-01 16:24 1712使用这两个接口,用于Collections.sort或Arra ... -
JUnit 4 常用的几个 annotation
2011-11-15 14:15 1058[size=large][size=medium]@Befor ... -
通过APACHE POI操作OFFICE --EXCEL(一)
2011-11-07 18:20 1354一、简介 使用Java程序读写Microsoft Office ... -
键盘数字对应的ASCII码
2011-10-31 16:41 2359keycode 1 = 鼠标左键 keycode 2 = 鼠标 ... -
一段java代码
2011-10-21 17:50 908import java.io.InputStream; im ...
相关推荐
"java-basis.rar_java Basis"这个压缩包可能包含了帮助学习者深入理解Java核心概念的资料,比如变量、数据类型、运算符、流程控制语句、类与对象、接口、异常处理、集合框架等内容。 在Java编程中,首先要理解的是...
**标题:** "java basis" **描述:** "java 基础学习,查询的资料。一些基础语法以及面向对象的相关知识。" **标签:** "环境变量 面向对象" Java是一种广泛使用的编程语言,具有平台无关性、面向对象等特点。...
### Java基础在AnyLogic中的应用 #### 一、概述 在AnyLogic标准培训计划中,对Java基础知识进行了简明扼要的介绍。由于AnyLogic是一款强大的多方法仿真建模工具,掌握基本的Java编程技能对于有效地使用该软件至关...
此外,系统升级也是BASIS管理员的常见任务,需要熟悉SPDD和STAD工具,以及ABAP Stack和Java Stack的升级流程。 3. 数据库管理: BASIS涉及到与数据库紧密相关的任务,如数据备份与恢复、性能优化和数据库调整。...
这通常涉及到ABAP Stack和Java Stack的升级,以及SP Stack Manager的使用。 3. **系统复制与克隆**:在开发、测试、生产环境之间,Basis人员会执行系统复制和克隆操作,以保持数据一致性或创建新的测试环境。使用...
SAP BASIS是SAP系统中的一个关键组成部分,主要负责管理和维护SAP系统的基础设施,包括操作系统、数据库、中间件以及网络配置等。对于想要深入理解和掌握SAP BASIS的人员来说,全面的培训至关重要。以下是对"SAP ...
提及的其他技术有Microsoft Windows和Office系列软件、IBM DB2数据库、ORACLE数据库、INFORMIX数据库、Citrix系统、JAVA和JAVASCRIPT编程语言等。这些技术与SAP BASIS工程师在维护SAP系统时通常会涉及到的软件产品和...
【SAP Basis 入门详解】 SAP Basis是SAP系统的核心组成部分,主要负责系统的基础架构管理和维护,包括操作系统、数据库、中间件、网络以及与SAP应用程序的集成。要开始学习SAP Basis,首先需要具备一些基础的技术...
Java Basis 001 JAVA有哪些数据类型?基本数据类型各占多少个字节 002 Java中的String类能否被继承?为什么? 003 Java中String、StringBuffer、StringBuilder的区别 004 Java中ArrayList与LinkedList的区别 005 ...
on performance of Java (and other) applications on a daily basis, but I like to think that I spend most of my time dealing with algorithmic inefficiences and external system bottlenecks rather than on...
3. **Personal Basis Profile (PBP)** 和 **Personal Profile (PP)**:针对更高级别的设备,提供了更多JavaSE的功能。 **源码结构** 一个典型的JavaME项目源码结构可能包含以下几个部分: 1. **主类**:通常是应用...
- **Java 平台**:支持Java语言的应用开发。 - **消息中间件**:用于实现异步通信和事件驱动架构。 - **门户组件**:提供统一的用户界面访问各种业务流程。 - **商业智能工具**:帮助企业进行数据分析和决策支持。 -...
java_basisjava basis demo, study.Java基础学习,记录。2021/4/10java designer 设计模式学习。2021/2/23JVM Java虚拟机基本原理。2021/2/15juc (java util concurrent) Java并发编程。2020/11/14更新,目前,多...
the sound conceptual basis that developers need to create advanced applications. The book includes careful explanations of sometimes perplexing programming techniques along with enough background to ...
- **配置特定的API(Configuration-Specific API)**: 这些API针对不同类型的设备进行定制,例如Foundation Profile(FP)、Personal Basis Profile(PBP)、Personal Profile(PP)等。 - **可选包(Optional ...
- **Personal Basis Profile**:用于更强大的嵌入式设备如PDA等。 #### 三、Java ME开发工具 - **JDK(Java Development Kit)**:基本的Java开发工具包。 - **Eclipse**:支持Java ME插件进行开发。 - **NetBeans...
In addition, more advanced chapters are now included so that it can be used as the basis for two-semester or graduate course. The most accepted and successful techniques are described in a concise ...
本文档介绍了Java版RBF(Radial Basis Function,径向基函数)神经网络算法的实现。RBF神经网络是一种常用的机器学习算法,特别适用于函数逼近、分类和回归问题。 RBF神经网络的结构 RBF神经网络通常由三层组成:...
- **Java**:Sun Microsystems 的注册商标。 - **JavaScript**:Sun Microsystems 的注册商标,由 Netscape 许可使用。 #### 六、文档获取地址 文档指出可以在 SAP Service Marketplace 上找到本指南: - ...