Java基础总结

时间:2022-09-02 07:45:24 其他总结 收藏本文 下载本文

Java基础总结(合集12篇)由网友“AIHASNOHEART”投稿提供,下面是小编给大家整理后的Java基础总结,欢迎大家借鉴与参考,希望对大家有所帮助。

Java基础总结

篇1:Java基础总结

1.在程序设计中经常用到一系列类型(基本类型),它们需要特殊对待,对于这些类型,Java采取与C和C++相同的方法,也就是说,不用new来创建变量,出是创建一个并非引用的变量,这个变量直接存储“值”,并置于堆栈中,因此更加高效。

基本类型包装类型大小booleanBoolean-charCharacter16-bitbyteByte8-bitshortShort16-bitintInteger32-bitlongLong64-bitfloatFloat32-bitdoubleDouble64-bitvoidVoid-

基本类型具有的装类,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型。

public class AutoBoxingTest{ public static final Integer CONST_A = 1; public static final Integer CONST_B = Integer.valueOf(“2”); public static final Integer CONST_C = new Integer(3); private Integer status; public void setStatus(Integer status){ this.status = status; } public void displayStatus{ if(status==CONST_A)System.out.println(“It's CONST_A”); else if(status==CONST_B)System.out.println(“It's CONST_B”); else if(status==CONST_C)System.out.println(“It's CONST_C”); elseSystem.out.println(“Invalid status!”); } public static void main(String[] args){ AutoBoxingTest abt = new AutoBoxingTest(); abt.setStatus(1); abt.displayStatus(); abt.setStatus(2); abt.displayStatus(); abt.setStatus(3); abt.displayStatus(); }}/**执行结果:It's CONST_AIt's CONST_BInvalid status!原因:在自动装箱和调用Integer.valueOf(String)时,返回的Integer是从IntegerCache中获取的,所以都是同一个对象。延伸一下,如果一边是包装类,一边是基本类型时,使用< 、> 、<=等比较,都会时行值比较。*/

Java提供了两个用于高精度计算的类:BigInteger、BigDecimal。

import java.math.BigInteger;public class MainClass{ public static void main(String[] argv)throws Exception { BigInteger bigInteger1 = new BigInteger(“123456789012345678901234567890”); BigInteger bigInteger2 = new BigInteger(“123456789012345678901234567890”); //add bigInteger1 = bigIntger1.add(bigInteger2); System.out.println(bigInteger1); //subtract bigInteger1 = bigInteger1.subtract(bigInteger2); System.out.println(bigInteger1); //multiplay bigInteger1 = bigInteger1.multiply(bigInteger2); System.out.println(bigInteger1); //divide bigInteger1 = bigInteger1.divide(bigInteger2); System.out.println(bigIntger1); }}

2.基本数据类型默认值

若类的某个成员是基本类型,即使没有进行初始化,Java也会确保它获得一个默认值 。

基本类型默认值booleanfalsechar‘/u0000’byte0short0int0long0Lfloat0.0Ldoubl0.0d

3.javadoc

用于提取注释的一部分,输出是一个HTML文件,所有Javadoc命令只能在”/*”注释中出现,结束于”/”,使用Javadoc的方式主要有两种:嵌入式HTML或使用”文档标签”,”文档标签”是一些以@字符开头的命令.

篇2:Java基础总结

1.直接常量

为了编译器可以准确的知道要生成什么样的类型,可以给直接常量后面添加后缀字符标志它的类型,若为L表示long,F表示float,D表示double。也可以利用前缀表示进制,0x表示十六进制,0表示八进制。

2.移位操作符

(<<):向左移动,低位补0

(>>):向右移动,高位补符号

(>>>):向右移动,高位补0

3.Java中没有sizeof,因为所有数据类型在所有机器中的大小都是相同的。

篇3:Java基础总结

1.Java完全采用动态内存分配方式。每当想创建新对象时,就需要使用new关键字来构建此对象实例。

2.在构造器中,如果为this添加了参数列表,那么就有了不同的含义。这将产生对符合此参数列表的某个构造器的明确调用。(1)尽管可以用this调用一个构造器,但却不能调用两个,而且必须将构造器调用置于最起始处。(2)除构造器外,编译器禁止在其他任何方法中调用构造器。

public class Person{ int age = 0; String name = “”; Person(int a){ age = a; System.out.println(“age:”+age); } Person(String n){ name = n; System.out.println(“name:”+name); } Person(int a,String n){ this(a); this.name = n; System.out.println(“both!”); }}

3.finalize方法

一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。

public class FinalizeDemo{ public static void main{ Cake c1 = new Cake(1); Cake c2 = new Cake(2); Cake c3 = new Cake(3); c2 = c3 = null; System.gc();//Invoke the Java garbage collector }}class Cake extends Object{ private int id; public Cake(int id){ this.id = id; System.out.println(“Cake Object ”+id+“ is created”); } protected void finalize()throws java.lang.Throwable{ super.finalize(); System.out.println(“Cake Object ”+id+“is disposed”); }}/**执行结果 :Cake Object 1 is createdCake Object 2 is createdCake Object 3 is createdCake Object 3 is disposedCake Object 2 is disposed*/

4.在定义类成员变量的地方可以为其赋值,在C++中是不能这么做的。在类的内部,变量定义的先后顺序决定了初始化的顺序。

篇4:Java基础总结

1.package必须是文件中除注释以外的第一句程序代码。

2.每个文件只能有一个public类,但是也可以完全不带public类,在这种情况下,可以随意对文件命名。

3.类的名字必须与文件名相同.

4.除了public、private、protected之外,Java有一种默认的访问权限,当没有使用前面的访问指字词时,它将发挥作用。这种权限通常称为包访问权限。在这种权限下,同一个包中的类可以访问这个成员,而包之外的类,是不能访问这个成员的。

package testcontrol;public class MyTest{ public int mIntPublic = 22; protected int mIntProtected = 33; private int mIntPrivate = 44; int mInt = 55; void printForAll() { System.out.println(mIntPublic); System.out.println(mIntProtected); System.out.println(mInt); System.out.println(mIntPrivate); }}

package testcontrol;//同一个包下的子类class MyTestDerived extends MyTest{ void printForAll() { System.out.println(mIntPublic); System.out.println(mIntProtected); System.out.println(mInt); //Syste.out.println(mIntPrivate); }}//同一个包下的非子类public class MyTestNotDerived{ public static main(String[] args){ MyTest bjMyTest = new MyTest(); System.out.println(“Access Permission Test in same package:1”); System.out.println(objMyTest.mIntPublic); System.out.println(objMyTest.mIntProtected); System.out.println(objMyTest.mInt); //System.out.println(objMyTest.mIntPrivate); System.out.println(“Access Permission Test:2”); objMyTest.printForAll(); System.out.println(“Access Permission Test in Derived:3”); objDerived.printForAll(); }}

篇5:Java基础总结

1.foreach

是一种更加简洁的for语法用于数组和容器

for(元素类型t 元素变量x:遍历对象obj){

引用x的java语句

}

int arr[] = {1,2,3};for(int x:arr){ System.out.println(x);}

篇6:Java基础总结

1.用interface关键字创建一个接口,要让一个类实现特定接口,需要使用implements关键字。

2.接口也可以包含域,但是这些域隐式是static和final的。

interface Runner//定义接口{ int i = 3; public void start; void run(); void stop();}interface Eater extends Runner//接口间可以继承{ public final static int j = 4; void openMouth(); void upAndDown(); void goIn();}class TT implements Eater//实现接口{ public void start(){System.out.println(“start”);} public void run(){System.out.println(“run”);} public void stop(){System.out.println(“stop”);} public void openMouth(){System.out.println(“openMouth”);} public void upAndDown(){System.out.println(“upAndDown”);} public void goIn(){System.out.println(“goIn”);}}public class TestInterface { public static void main(String[] args){ Runner tt = new TT(); System.out.println(tt.i); System.out.println(Runner.i); tt.start(); Eater ee = new TT(); System.out.println(ee.j); System.out.println(Eater.j); ee.start(); }}

篇7:Java基础总结

1.它能访问其外围对象的所有成员,

2.如果你需要生成对外部类对象的引用,可以使用外部类的名字后面紧跟.this.

3. 使用.new创建内部类的引用

public Test(){ private int num; public Test(int num){ this.num = num;} private classInner{ public Test getTest(){return Test.this; } public Test newTest(){return new Test(); } } public static void main(String[] args){ Test test = new Test(5); Test.Inner inner = test.new Inner(); Test test2 = inner.getTest(); Test test3 = inner.newTest(); System.out.println(test2.num); System.out.println(test3.num); }}/**执行结果:5 0*/

篇8:Java基础总结

1.extends关键字用于类的继承。

2.在C++中,方法的动态绑定是使用virtual关键字来实现的,而在Java中,动态绑定是默认的形为,不需要添加额外的关键字。

//c++代码class Base{public : Base{init();} virtual ~Base(){}protected: virtual void init() { cout<<“in Base::init()”<

//javaclass Base{ public Base(){init();} protected void init(){ System.out.println(“in Base::init()”); }}class Derived extends Base{ public Derived(){init();} protected void init(){ System.out.println(“in Derived::init”); }}public class Test{ public static void main(String[] args){ Base base = new Derived(); }}/*执行结果 :in Derived::init()in Derived::init()这是因为Java中的类对象在构造前就已经存在了,而c++中只有在构造完毕后才存在。*/

3.使用关键字super显式调用基类的构造器。

4.final关键字

(1)对于基本类型,final可以使其成为编译时常量,可以在定义时赋值,也可以在构造函数中进行赋值。

(2)对于对象引用,final使引用恒定不变,一旦引用被初始化指向一个对象,就无法再把它改为为指向另一个对象。

public class Bat{ final double PI = 3.14;//在定义时赋值 final int i; final Listlist; Bat(){ i = 100; list = new LinkedList(); } Bat(int ii,listl){ i = ii; list = l; } public static void main(String[] args){ Bat b = new Bat(); b.list.add(new Bat()); //b.i = 25; //b.list = new ArrayList(); }}

(3)如果用final修饰方法,可以防止任何继承类修改它的含义。类中所有的private方法都隐式地指定为final。

(4)如果用final修饰类,表示不能再继承这个类。

篇9:Java基础总结

指程序能够在运行时发现和使用类型信息,我们一般使用两种方式来实现运行时对象和类的信息:传统的RTTI和反射机制。

1.class对象

专门用来保存类的信息,所有类都是动态加载到JVM中的,在他们第一次使用的时候,类加载器会首先检查Class对象是否加载,如果没有,那么找到同名的class文件,然后加载字节码文件,验证代码的完整性和安全性,一旦这个类型的class对象加载到内存中,它将会用来创建所有此类的对象。

class对象的生成方式如下:

(1)Class.forName(“类名字符串”)

(2)类名.class

(3)实例对象.getClass()

package Refect;class Demo{ //other code...}class hello{ public static void main(String[] args){ Classdemo1 = null; Classdemo2 = null; Classdemo3 = null; try{demo1 = Class.forName(“Reflect.Demo”); }cathc(Exception e){e.printStackTrace(); } demo2 = new Demo().getClass(); demo3 = Demo.class; } System.out.println(“类名称 ”+demo1.getName());//Reflect.Demo System.out.println(“类名称 ”+demo2.getName());//Reflect.Demo System.out.println(“类名称 ”+demo3.getName());//Reflect.Demo}

2.instanceof

告诉我们对象是不是某个特定类型的实例。

3.反射

RTTI(运行时类型信息)和反射之间真正的区别只在于,对于RTTI来说,编译器在编译时打开和检查.class文件,而对于反射机制来说,.class文件在编译时是不可获取的,所以是在运行时打开和检查.class文件。

反射主要是指程序可以访问、检测和修改它本身或行为的一种能力。

package Reflect;interface China{ public String name = “Rollen”; public int age = 20; public void sayChina(); public void sayHello(String name,int age);}class Person implements China{ private String sex; public Person(){}; public Person(String sex){this.sex = sex;} public getSex(){return sex;} public setSex(String sex){this.sex = sex;} @Override public void sayChina(){ System.out.println(“hello, china”); } @Override public void sayHello(String name,int age){ System.out.println(name+“ ”+age); }}class hello{ public static void main(String[] args){ Classdemo = null; try{demo = Class.forName(“Reflect.Person”) }catch(Exception e){e.printStackTrace();} //保存所有的接口 Classintes[] demo.getInterfaces(); for(int i=0;icons[]= demo.getConstructors(); for(int i=0;i

篇10:Java基础总结

1.通配符

(1)通配符的上界

? extends myClass其中“?”就是通配符,其上界为myClass,这句话代表myClass或其子类。List apples = new ArrayList;Listfruits = apples;

(2)通配符的下界

? super myClass表示通配符的下界为myClass,这句话代表myClass的超类型直至Object。Listfruits = new ArrayList();List= fruits;

(3)无界通配符

?等价于Object。

篇11:Java基础总结

1.用于描述Java源代码,使得我们能够以将由编译器来测试和验证的格式,存储有关程序的额外信息。使用时在@后面跟注解的名字。

2.预定义的三个注解

(1)Override

标识某一个方法是否覆盖了它的父类的方法。

(2)Deprecated

标注一个类成员时,编译器会发出警告信息。

(3)SuppressWarnings

就是抑制编译器产生警告信息。

3.自定义注解

注解的定义和接口差不多,只是在interface前面多一个“

@”

public @interface MyAnnotation{}

上面的代码是个最简单的注解,这个注解没有属性。当然也可以定义有属性的注解。

public @interface MyAnnotation{ String value();}

可以按如下格式使用MyAnnotation

@MyAnnotation(“abc”)public void myMethod(){}

这里有一个约定,如果没有写属性名的值,而这个注解又有value属性,就将这个值给value属性,如果没有,就出现编译错误。

除了可以省略属性名,还可以省略属性值,这就是默认值。

public @interface MyAnnotation{ public String value() default “xyz”;}

可以直接使用MyAnnotation

@MyAnnotationpublic void myMehtod(){}

4.元注解(对注解进行注解)

为注解提供了4种注解:

(1)Target

先看下面代码

@Target({ElementType.METHOD})@interface MyAnnotation{}@MyAnnotaion //wrong!public class Class1{ @MyAnnotation //right! public void myMethod(){}}

target所指的目标就是Java的语言元素,如类、接口、方法等。

(2)Retention

设置注解是否保存在class文件中

@Retention(RetentionPolicy.SOURCE)@interface MyAnnotation{}@Retention(RetentionPolicy.CLASS)@interface MyAnnotation2{}@Retention(RetentionPolicy.RUNTIME)@interface MyAnnotation3{}

其中第一段代码的作用是不将注解保存在class文件中,也就是说像“//”一样在编译时被过滤掉了。第二段代码的作用是只将注解保存在class文件中,而使用反射读取注解时忽略这些注解。第三段代码的作用是将注解保存在class文件中,也可以通过反射读取注解。

(3)Documented

在默认的情况下使用javadoc自动生成文档时,注解将被忽略掉,如果想在文档中也包含注解,必须使用Documented为文档注解。

(4)Interited

在默认情况下,父类的注解并不会被子类继承,如果要继承,就必须加上Inherited注解。

@Inherited@interface MyAnnotation{}@MyAnnotationpublic class ParentClass{}public class ChildClass extends ParentClass{}

在以上代码中ChildClass和ParentClass一样都已被MyAnnotation注解。

5.使用反射读取注解

我们使用反射可以得到类的方法、方法的参数以及其它的类成员等信息。如果要得到某一个类或接口的注解信息,可以使用如下代码:

Annotation annotation = MyClass.class.getAnnotaion(MyAnnotation.class);如果要得到全部的注解信息:Annotation[] annotations = MyClass.class.getAnnotations();或Annotation[] annotations = MyClass.class.getDeclaredAnnotations();getDeclaredAnnotations得到的是当前成员所有的注解,不包括继承。

##并发

1.定义任务

线程可以驱动任务,因些你需要一种描述任务的方式,这可以由Runnable接口来提供。实现Runnable接口并编写run方法。~

2.Thread类

将Runnable对象转变为工作任务的传统方式是把它提交给一个Thread构选器。

篇12:Java基础知识点总结

Java基础知识点总结

1. JAVA简介

1.1 java体系结构:j2se,javaweb,j2ee

1.2 java特点:平台无关(虚拟机),垃圾回收(使得java更加稳定)

1.3 JDK与JRE,JDK:java开发环境,JRE:java运行环境

1.4 第一个java程序:HelloWorld,java的入口是main(public static void main(String[] args))

1.5 java程序的开发步骤:.java 编译(javac)成.class 运行(java).class文件

2. 基本数据类型

2.1标志符:自己可以取名字的地方称为标志符

*标志符的规则:1,只能是字母,数字,下划线,$;不能以数字开头;严格区分大小写;不能使用关键字作为标志符

2.2关键字:关键字都是小写

2.3常量:如123,“hello”

*也可以使用final定义常量(请参照Math.PI),如public static final int SLOW_SPEED=1;

2.4 变量:变量的本质是内存中的一小块区域,用这个区域保存数据

*变量申明:类型变量名字

*变量必须先声明,再赋值,再使用

*注意区分基本数据类型的变量与引用数据类型的变量

*变量的作用域,局部变量与成员变量:变量在哪个大括号里定义,就在哪里有效,出了大括号无效

2.5 基本数据类型:java数据类型分为两大类:基本数据类型,引用数据类型

*基本数据类型分为4类8中:boolean,char,byte,short,int,long,float,double

*boolean类型只有true,false

*char是Unicode编码

*float,double是有精度的(不是绝对精确的)

2.6 基本数据类型之间的转换

*123字面常量是int型,12.3字面常量是double型,8888888888888这个字面常量有问题(因为它已经超出int的范围,改成8888888888888L)

*boolean与其他类型不兼容

*byte,short,char之间相互运算的时候,先转换为int,再进行运算

*小容量的数据类型可以自动转换为大容量的数据类型:byte,short,char——>int——>long——>float——>double

*大容量转换为小容量的数据类型,要进行强制转换

*多种数据类型进行运算的时候,先转换为容量最大的数据类型再进行运算,整个表达式的类型是容量最大的数据类型

*必须掌握PPT上的习题

3. 运算符与流程控制3.1运算符:算术,关系,赋值,逻辑(着重注意),位运算符

*自加自减++,--,注意顺序

*关系运算符的结果是boolean类型

*逻辑运算符注意短路与&&,短路或||

*三元运算符(逻辑表达式) ? 表达式一:表达式二

3.2流程控制语句:条件(if,switch),循环(for,while,do while),break与continue

3.3 switch的规则:

*switch只能探测:byte,short,char,int 类型的值(case后面也只能是这4种)

*switch中小心case的穿透(代码会一直运行,直到遇到break停止,建议每个case写一个break)

*default:如果没有找到匹配的case,则执行default

3.4 for,while,do while搞清楚代码的执行流程(PPT上有图,必须记住)

3.5 break,continue

*都可以用在循环里面,break还可以用在switch中

*break跳出单前的代码块(结束循环)

*continue:跳过本轮循环,继续下一轮循环(循环会继续,仅仅跳过本次)

3.6 流程控制代码编写:可以灵活的组合这些流程控制代码,注意一定要写{ }

4. 面向对象基本语法

需要大家掌握:类与对象的区别,如何定义一个类,如何实例化一个对象

java个人学习总结2

java学习总结

java学习个人总结

java实训的总结

java项目个人总结范文

java程序员就业感言

java实训报告

java实习总结

java实训心得体会感想

java培训实习报告

Java基础总结
《Java基础总结.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【Java基础总结(合集12篇)】相关文章:

java个人总结2023-04-21

Java实习工作总结2022-08-09

java述职报告范文2022-08-29

暑期关于学习java实习报告2023-01-16

java毕业实习报告2022-05-02

java教学总结2022-12-01

java的实习报告2023-07-31

java年终总结2023-11-08

java毕业实习体会2022-08-21

Java实习工作总结2023-03-01

点击下载本文文档