JAVA基础
- 格式:doc
- 大小:84.50 KB
- 文档页数:12
java基础知识点
1、面向对象:Java语言是一种面向对象的编程语言,它使用Java类和Java对象来构建复杂的系统。
Java类包含方法(程序执行的语句)和属性(关于对象的信息)。
可以使用对象间的关系(如继承和实现)来“重用”代码。
2、语言基础:Java语言是一种类型安全的、健壮的和高效的编程语言,它具有静态类型系统、异常处理、泛型和沙箱安全机制等功能。
这种类型安全指的是Java可以通过显式声明变量的数据类型来确保变量的内容。
3、继承:Java支持继承机制,可以将多个类“组装”在一起,互相共享代码并复用属性和方法。
继承是一种多态性,它允许每个类“定义”它自己独有的行为,但与同一父类共享相同接口。
4、包:Java使用java包来组织类和接口,它提供了独立的命名空间,可以将相似的类和接口组装在一起,以保持代码整洁和可维护性。
5、容器:容器是Java中的一种特殊数据类型,它可以储存和管理多个对象。
Java提供了多种容器,比如ArrayList,Map,HashMap 等,帮助程序员管理复杂的系统。
第一讲 Java语言入门1.1 Java的特点1.1.1面向对象:•与C++相比,JAVA是纯的面向对象的语言C++为了向下兼容C,保留了很多C里面的特性,而C,众所周知是面向过程的语言,这就使C++成为一个"混血儿"。
而JAVA语法中取消了C++里为兼容C所保留的特性,如取消了头文件、指针算法、结构、单元等。
1.1.2可移植(平台无关性):•生成中间字节码指令与其他编程语言不同,Java并不生成可执行文件(.exe文件),而是生成一种中间字节码文件(.class文件)。
任何操作系统,只要装有Java虚拟机(JVM),就可以解释并执行这个中间字节码文件。
这正是Java实现可移植的机制。
•原始数据类型存储方法固定,避开移植时的问题Java的原始数据类型的大小是固定的。
比如,在任何机器上,整型都是32位,而C++里整型是依赖于目标机器的,对16位处理器(比如8086),整数用两个字节表示;在像Sun SPARC这样的32位处理器中,整数用4个字节表示。
在Intel Pentium处理器上,整数类型由具体的操作系统决定:对于DOS和Win32来说,整数是2个字节;对于Windows 9x 、NT和2000,整数是4个字节。
当然,使整数类型平台无关之后,性能必然有所下降,但就Java来说,这个代价是值得的。
Java的字符串,则采用标准的Unicode格式保存。
可以说,没有这个特性,Java的可移植性也不可能实现。
1.1.3简单•JAVA在语法上与C++类似JAVA的语法与C++很接近,有过C或者C++编程经验的程序员很容易就可以学会JAVA语法;•取消了C++的一些复杂而低效的特性比如:用接口技术代替了C++的多重继承。
C++中,一个类允许有多个超类,这个特性叫做"多重继承",多重继承使得编译器非常复杂且效率不高;JAVA 的类只允许有一个超类,而用接口(Interface)技术实现与C++的多继承相类似的功能其它被取消的特性包括:虚拟基础类、运算符过载等•JAVA的基本解释器和类支持模块大概仅40K即使加入基本的标准库和支持线程的模块,也才220K左右。
Java基础知识总结(超详细整理)Java语⾔的特点1.⾯向对象⾯向对象(OOP)就是Java语⾔的基础,也是Java语⾔的重要特性。
⾯向对象的概念:⽣活中的⼀切事物都可以被称之为对象,⽣活中随处可见的事物就是⼀个对象,我们可以将这些事物的状态特征(属性)以及⾏为特征(⽅法)提取并出来,并以固定的形式表⽰。
2.简单好⽤Java语⾔是由C和C++演变⽽来的,它省略了C语⾔中所有的难以理解、容易混淆的特性(⽐如指针),变得更加严谨、简洁、易使⽤。
3.健壮性Java的安全检查机制,将许多程序中的错误扼杀在摇蓝之中。
另外,在Java语⾔中还具备了许多保证程序稳定、健壮的特性(强类型机制、异常处理、垃圾的⾃动收集等),有效地减少了错误,使得Java应⽤程序更加健壮。
4.安全性Java通常被⽤在⽹络环境中,为此,Java提供了⼀个安全机制以防恶意代码的攻击,从⽽可以提⾼系统的安全性。
5.平台⽆关性Java平台⽆关性由Java 虚拟机实现,Java软件可以不受计算机硬件和操作系统的约束⽽在任意计算机环境下正常运⾏。
6.⽀持多线程在C++ 语⾔没有内置的多线程机制,因此必须调⽤操作系统的多线程功能来进⾏多线程程序设计,⽽ Java 语⾔却提供了多线程⽀持。
多线程机制使应⽤程序在同⼀时间并⾏执⾏多项任务,该机制使得程序能够具有更好的交互性、实时性。
7.分布式(⽀持⽹络编程)Java语⾔具有强⼤的、易于使⽤的⽹络能⼒,⾮常适合开发分布式计算的程序。
java中提供了⽹络应⽤编程接⼝(),使得我们可以通过URL、Socket等远程访问对象。
8.编译与解释共存Java语法基础标识符: ⽤来标识类名、对象名、变量名、⽅法名、类型名、数组名、⽂件名的有效字符序列。
合法的标识符:由字母、数字、下划线“_”、美元符号“$”或者“¥”组成,并且⾸字符不能是数字。
不能把java关键字和保留字作为标识符。
标识符对⼤⼩写敏感。
关键字:Java语⾔中已经赋予了特定含义的保留字: const、goto,Java版本中尚未使⽤,但以后版本可能会作为关键字使⽤变量:程序运⾏期间可以被改变的量。
Java必备基础知识点(超全)Java基础1、简述Java的基本历史java起源于SUN公司的⼀个GREEN的项⽬,其原先⽬的是:为家⽤消费电⼦产品发送⼀个信息的分布式代码系统,通过发送信息控制电视机、冰箱等2、简单写出Java特点,写出5个以上,越多越好简单的、⾯向对象的、分布式的、安全的、稳定的、与平台⽆关的、可解释的、多线的、动态的语⾔。
3、什么是Java?JAVA:⼀种编程语⾔⼀种开发环境⼀种应⽤环境⼀种部署环境4、请写出Java的版本分类,以及每种版本的应⽤⽅向三种版本:JME:是⾯向内存有限的移动终端. 为消费性产品设计的;JSE:是SUN公司针对桌⾯开发和低端商务计算⽅案开发的版本。
为笔记本电脑、PC机设计的;JEE:是⼀种利⽤JAVA 2平台来简化企业解决⽅案的开发、部署和管理相关的复杂问题的体系结构。
为企业级的、服务器端的⾼端应⽤⽽设计的;5、描述Java技术的主要特性java虚拟机垃圾回收代码安全性如果你想学习Java可以来这个群,⾸先是⼆⼆零,中间是⼀四⼆,最后是九零六,⾥⾯有⼤量的学习资料可以下载。
6、描述 Java虚拟机的功能(1)通过 ClassLoader 寻找和装载 class ⽂件(2)解释字节码成为指令并执⾏,提供 class ⽂件的运⾏环境(3)进⾏运⾏期间垃圾回收(4)提供与硬件交互的平台7、简述Java代码安全性(1)编译时的错误检验(2)类装载检查,把本机上的类和⽹络资源类相分离,在调⼊类的时候进⾏检查,因⽽可以限制任何“特洛伊⽊马”的应⽤(3)字节码校验(4)沙箱机制,限定访问权限8、描述Java垃圾回收机制Java 编程语⾔解除了程序员释放内存的责任。
它可提供⼀种系统级线程以跟踪每⼀次内存的分配情况。
在 Java 虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的内存。
垃圾收集在 Java 技术程序的⽣命周期中⾃动进⾏,它解除了释放内存的要求,这样能够有效避免内存漏洞和内存泄露(内存泄露就是程序运⾏期间,所占⽤的内存⼀直往上涨,很容易造成系统资源耗尽⽽降低性能或崩溃。
java基础八股文Java基础八股文Java是一门跨平台的面向对象编程语言,广泛应用于企业级应用开发、移动应用开发、游戏开发等领域。
本文将从Java基础的八个方面,介绍Java编程的核心知识点。
一、变量与数据类型Java中的变量需要先声明再使用,可以分为基本数据类型和引用数据类型。
基本数据类型包括byte、short、int、long、float、double、char、boolean,引用数据类型包括数组、类、接口等。
需要注意的是,Java是一门强类型语言,变量类型必须与赋值类型一致。
二、运算符与表达式Java中的运算符包括算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符等。
表达式是由操作数和运算符组成的式子,可以通过运算符的优先级和括号来改变表达式的计算顺序。
三、流程控制Java中的流程控制语句包括条件语句、循环语句和跳转语句。
条件语句包括if语句和switch语句,循环语句包括for循环、while循环和do-while循环,跳转语句包括break语句、continue语句和return语句。
四、数组和字符串Java中的数组是一组相同类型的数据集合,可以通过下标访问数组元素。
字符串是一组字符的集合,可以通过String类来创建和操作字符串。
五、面向对象编程Java是一门面向对象的编程语言,支持封装、继承和多态等特性。
封装可以隐藏类的内部细节,继承可以从父类继承属性和方法,多态可以通过父类引用指向不同的子类对象。
六、异常处理Java的异常处理机制可以捕获和处理程序中的异常情况,防止程序崩溃或出现错误结果。
异常分为受检异常和非受检异常,可以使用try-catch语句来处理异常。
七、集合框架Java的集合框架提供了一组用于存储和操作数据的类和接口,包括List、Set、Map等数据结构。
集合框架提供了丰富的API,可以方便地进行数据的增删改查等操作。
八、IO流和网络编程Java的IO流可以实现数据的输入和输出,包括字节流和字符流。
l面向对象的继承与多态:继承:1.继承是通过关键字extends实现的,被继承的类称为父类(超类、基类),新的类称为子类(派生类)2.Java中不能多继承(即一个子类不能有多个父类)3.一个父类可以被多个子类继承class Animal{int hight,weight;void eat(){System.out.println("animal eat");}void sleep(){System.out.println("animal sleep");}void breathe(){System.out.println("animal breath");}}class Fish extends Animal{}public class Test1 {public static void main(String[] args) {//继承Fish f=new Fish();f.eat();}}方法覆盖:1.在子类中定义一个与父类同名、返回类型、参数类型、参数个数均相同的一个方法,称为方法覆盖。
2.方法覆盖发生在子类与父类之间。
class Animal{int hight,weight;void eat(){System.out.println("animal eat");}void sleep(){System.out.println("animal sleep");}void breathe(){System.out.println("animal breath");}}class Fish extends Animal{void breathe(){System.out.println("fish breath");}}public class Test1 {public static void main(String[] args) {//继承Fish f=new Fish();f.breathe();//方法覆盖,覆盖了其父类的breath方法}}方法的重载(overloading):构造方法===>一个类中可以有多个构造方法方法的重载就是同一个类中具有多个方法名一致的方法,方法的重载是同一个方法执行不同的业务方法的重载发生在同一个类中,方法名相同,参数列表不同与修饰符以及返回类型无关参数列表不同:a:参数的数据类型不同b:参数的个数不同c:参数的顺序不同public class TestOverload{public static void main(String[] args){TestOverload to =new TestOverload();method();System.out.println(to.method(20,30));System.out.println(to.method((byte)23,45));to.method((byte)20,(short)40);}public static void method(){System.out.println("本类的静态方法");}public int method(int i,int j){int result =i*j;return result;}private byte method(byte b1,int b2){byte b =(byte)(b1+b2);return b;}void method(byte b1,short b2){byte b =(byte)(b1*b2);System.out.println("b="+b);}}特殊变量super:1.特殊变量super,提供了对父类的访问2.可以使用super访问父类被子类隐藏的变量或覆盖的方法3.每个子类构造方法的第一条语句,都是隐含的调用super(),如果父类没有这种形式的构造函数,那么在编译时就会报错class Animal{void eat(){System.out.println("animal eat");}void sleep(){System.out.println("animal sleep");}void breathe(){System.out.println("animal breath");}void breathe(int a){System.out.println("animal breath "+a);}}class Fish extends Animal{void breathe(){super.breathe();System.out.println("fish breath");}void eat(){System.out.println("fish eat");}}public class Test1 {public static void main(String[] args) {Animal an=new Animal();an.breathe(5);//方法重载//继承Fish f=new Fish();f.breathe();//方法覆盖,覆盖了其父类的breath方法}}抽象类:1.抽象类:包含一个抽象方法的类就叫做抽象类2.抽象方法:只声明而未实现的方法称为抽象方法,抽象方法必须使用abstract关键字声明抽象类的定义及使用规则:1.包含一个抽象方法的类必须是抽象类;2.抽象类和抽象方法都要使用abstract关键字声明3.抽象方法只需要声明而不需要实现4.抽象类必须被子类继承,子类(如果不是抽象类)必须覆写抽象类中的抽象方法5.抽象类被子类继承,子类(如果是抽象类)则不必覆写抽象类中的方法例如:abstract class抽象类名{属性;权限返回值类型方法名(参数){//普通方法【return值】}权限abstract返回类型方法名(参数);//抽象方法//方法没有方法体说明:1.从定义上,抽象类就比普通类多了一个抽象方法而已2.抽象类不能被直接实例化3.抽象类必须有子类子类必须覆写抽象类中的全部抽象方法(这里的子类是普通类非抽象类)注意:(1)一个类如果使用了final关键字声明,则此类不能被子类继承,而抽象类必须被子类覆写,所以抽象类不能使用final声明(2)抽象类中允许有构造方法,因为抽象类一人使用的是类的继承关系,而抽象类也存在各个属性,所以子类在实例化之前一定是先对父类实例化的.abstract class Animal{abstract public void run();abstract public void shout();abstract public void eat();}abstract class Dog extends Animal{}class HabaDog extends Dog{public void eat(){System.out.println("哈巴狗吃香肠");}public void shout(){System.out.println("哈巴狗汪汪大叫...");}public void run(){System.out.println("哈巴狗立着跑...");}}public class abstracts{public static void main(String[] args){Dog d =new HabaDog();d.shout();d.eat();d.run();}}实际当中的应用:现在有两种人,一种是学生,一种是老师学生有学分,老师是有奖金学生与老师都有表明自己身份的方式通过抽象类来实现这种业务关系,输出需要显示的信息abstract class People{String name;String sname;People(){}People(String name,String sname){ =name;this.sname =sname;}abstract public String speak(People p);}class Student extends People{int score;Student(){}Student(String name,String sname,int score){super(name,sname);this.score =score;}public String speak(People p){return"身份:"+p.sname+"\n"+"姓名:"++"\n"+"学分:"+this.score;}}class Teacher extends People{float comm;Teacher(){}Teacher(String name,String sname,float comm){super(name,sname);m =comm;}public String speak(People p){return"身份:"+p.sname+"\n"+"姓名:"++"\n"+"奖金:"+m;}}public class TestAbstract4{public static void main(String[] args){People p1 =new Student("张军","学生",6);People p2 =new Teacher("李佳","老师",4500);System.out.println(p1.speak(p1));System.out.println(p2.speak(p2));}}接口:接口是Java中的最重要的概念,接口可以理解为一种特殊的类里面全部都是由全局变量和公共的抽象方法所组成如果一个类中完全是全局常量(static final)和抽象方法组成,就可以将其定义成一个接口接口的定义格式:Interface 接口名称{全局变量;抽象方法;}举例:interface p{public static final String NAME="王恒";public abstract void print();//抽象方法public abstract void getInfo();//抽象方法}对于接口来讲,因为其在定义的时候已经定义了其组成就是全局变量和抽象方法,所以,在开发时往往可以简化定义举例:interface p{String NAME="王恒";void print();//抽象方法void getInfo();//抽象方法}以上的两种定义接口的方法是一样的没有任何的区别实现接口:1.接口与抽象类一样,接口要实现也必须通过子类,子类通过implements关键字实现接口.2.实现的格式:class 子类implements 接口A,接口B,...{}接口的使用中也必须有子类,子类必须覆写全部的抽象方法,implements关键字实现,一个子类可以同时实现多个接口,则子类如果不是抽象类的话,肯定要覆写接口中的全部抽象方法interface z{public String NAME="王恒";public void print();//抽象方法public void getInfo();//抽象方法}interface c{public void method();}class X implements z,c{//同时实现两个接口public void print(){System.out.println("我实现了接口z中的print()方法");}public void getInfo(){System.out.println("我实现了z接口中的getInfo()方法"+NAME);}public void method(){System.out.println("我实现了c接口中的method()方法");}}public class p{public static void main(String[] args) {X x=new X();x.print();x.getInfo();x.method();}}继承抽象类实现接口:1.一个子类可以同时继承抽象类和实现接口.2.格式如下:class 子类extends 抽象类implements 接口A,接口B...{}举例:interface z{public String NAME="王恒";public void print();//抽象方法public void getInfo();//抽象方法}abstract class c{public abstract void method();}class X extends c implements z{public void print(){System.out.println("我实现了接口z中的print()方法");}public void getInfo(){System.out.println("我实现了z接口中的getInfo()方法"+NAME);}public void method(){System.out.println("我实现了c接口中的method()方法");}}public class p{public static void main(String[] args) {X x=new X();x.print();x.getInfo();x.method();}}在使用中,一个抽象类可以实现一个接口,那么对于抽象类的子类则就必须同时覆盖接口和抽象类中定义的所有的抽象方法.interface z{public String NAME="王恒";public void print();//抽象方法public void getInfo();//抽象方法}abstract class c implements z{public abstract void method();}class X extends c implements z{public void print(){System.out.println("我实现了接口z中的print()方法");}public void getInfo(){System.out.println("我实现了z接口中的getInfo()方法"+NAME);}public void method(){System.out.println("我实现了c接口中的method()方法");}}public class p{public static void main(String[] args) {X x=new X();x.print();x.getInfo();x.method();}}一个接口虽然不能继承抽象类,但是在Java中一个接口可以同时继承多个接口,实现接口的多继承格式:interface 子接口extends 父接口A,父接口B,...{}interface z{public String NAME="王恒";public void printz();//抽象方法}interface b{public void printb();}interface c extends z,b{public void printc();}class X implements c{@Overridepublic void printc() {// TODO Auto-generated method stubSystem.out.println("c");}@Overridepublic void printz() {// TODO Auto-generated method stubSystem.out.println("z");}@Overridepublic void printb() {// TODO Auto-generated method stubSystem.out.println("b");}}public class p{public static void main(String[] args) {X x=new X();x.printc();x.printz();x.printb();}}总结:1.接口是一个特殊的类,只包含成员变量和抽象方法接口中的抽象方法可以不加入abstract而抽象类中的方法必须有abstract关键字声明2.一个类只能继承一个父类,但是可以同时实现多个接口3.一个接口可以同时继承多个接口,以实现接口的多继承4.接口和抽象类一样,必须依靠子类5.一个抽象类可以实现多个接口,但是一个接口不能继承一个抽象类抽象类和接口的区别:1.抽象类可以有构造方法,接口中不能有构造方法。