Java基础知识_基本概念

Java语言的优

  • 1)纯面向对象
  • 2)平台无关性,一次编译,处处运行解释性语言,跨平台,可移植性好
  • 3)提供了很多的内置库,对多线程的支持,对网络通信的支持,提供了垃圾回收器,使得开发人员从内存管理中解脱出来
  • 4)提供了对Web应用开发的支持
  • 5)具有良好的安全性和健壮性
  • 6)去除了C++语言中难以理解、容易混淆的特性,如头文件、指针、结构、单元运算符重载,虚拟基类,多重继承,程序更加严谨和简介。

Java与C/C++的异同

相同点:都面向对象,使用了面向对象的特性(封装、继承和多态)

不同点

  • 1)Java为解释性语言,由JVM解释执行,C/C++为编译型语言,源代码经过编译和链接后生成可执行的二进制文件,执行速度快,但不能跨平台。
  • 2) Java为纯面向对象,所有代码(包括函数,变量)都必须在类中实现,除基本数据类型外,所有类型都为类。而C++也具有面向过程编程的特点。
  • 3)Java没有了C++中指针的概念,所以程序更安全和健壮
  • 4)C++由开发人员自动申请和释放指针,但Java由垃圾回收器进行管理
  • 5)Java不支持多继承,但是引入了接口的概念,接口可以多实现,从而达到与C++多重继承类似的目的
  • 6)Java具有平台无关性,每种数据类型都分配固定长度,而C/C++中同一个数据类型在不同的平台上会分配不同的字节数。
  • 7)Java包含了一些标准库,如JDBC,c++则完全依靠一些非标准的、由其他厂商提供的库

如何实现在main方法执行前输出“hello world”?:静态代码块

Java程序初始化的顺序

  • 父类静态变量,父类静态代码块,子类静态变量,子类静态代码块,父类非静态变量,父类非静态代码块,父类构造函数,子类非静态变量,子类非静态代码块,子类构造函数

Java中的作用域public > protected > default > private

作用域与可见性质当前类同一个包中的类子类其他package
public1111
private1000
protected(除了不同包中不可见)1110
default(在同包中可见)1100

什么是构造函数?:用来对象实例化时初始化对象的成员变量,在Java语言中具有的特点

  • 1)与类同名,无返回值
  • 2)如果开发人员没有提供构造函数,会自动创建一个,否则不会默认自动创建
  • 3)构造函数伴随着new操作一起被调用,不能由程序的编写者调用,必须由系统调用
  • 4)构造函数不能被继承,所以不能被覆盖,但是可以被重载
  • 为什么Java中有些接口没有任何方法:标识接口,如Serializable和Cloneable接口,在使用时会经常用instanceof来判断实例对象的类型是否实现了一个给定的标识接口。

Java中的clone方法有什么作用?

Java在处理基本数据类型时,采用按值传递,除此之外的都是按引用传递,在使用=也是按照引用传递

  • 1)实现clone的类首先要继承Cloneable接口,
  • 2)在类中重写clone()方法
  • 3)在clone方法中调用super.clone()方法,super.clone()方法会直接或者间接调用java.lang.Object类的clone()方法。
  • 深复制和浅复制的区别
  • 浅复制;被复制的所有变量都含有与原来对象相同的值,而所有对其他对象的引用仍然指向原来的对象,仅复制锁考虑的对象,而不复制它所引用的对象
  • 深复制:把复制的对象所引用的的对象都复制了一遍

什么是反射机制?

功能

  • 得到一个对象所属 的类
  • 获得一个类的所有成员变量和方法
  • 在运行时创建对象
  • 在运行时调用对象的方法

获取class类的三种方式

  • 1)Class.forName('类的路径名")
  • 2)类名.class
  • 3) 实例.getClass()

创建对象的4种方式

  • 1)通过new语句
  • 2) 通过反射机制
  • 3) 通过clone()方法
  • 4) 通过反序列化的方式创建对象

package有哪些作用?;一个 比较抽象的逻辑概念:把.java,.class,resource文件如.mp3, .txt有条理地进行一个组织

  • 提供多层命名空间,解决命名冲突
  • 对类按功能进行划分,使项目的组织更加清晰

 

课程介绍: 这是一门Java语言入门课程,针对的是Java初学者或者从事其他计算机语言开发但希望转到Java开发工作上来的软件工程师,是所有想入java之门的朋友首先要学的第一门课,也是整个Java开发的核心和基础,也就是大家常说的JAVA SE版本中涵盖的知识; 本门课程将采用 windows平台下的intellij IDEA开发环境作为主要的讲解平台,对于熟悉其他Java开发环境的学友们,当然也可以选择自己熟悉的平台;本门课程希望达到的目标是给大家打语言基础,但不希望一上来给大家太重的学习负担,分阶段,逐步的学习,是更好的学习方式,所以在本门课程中,我们将只涉及到基础的语言,以及面向对象程序设计的一些基础概念,更多的知识和概念我们将放在进阶课程中讲解,这一点望大家知晓; 在Java诞生的不到30年时间里,Java开发人员的市场需求已经增长到了一个非常惊人的程度,至少目前来看,没有任何一门开发技术能够和java比,从待遇方面,高级Java开发人员的薪资也是相当的高,大概只有c++能够和Java掰一掰手腕,其他的开发技术的薪资待遇,很难与Java比较。 很多想学习java的同学,会有一种困惑,感觉Java知识特别零散,除基本的Java语言外,各种概念、各种框架层出不穷,那我们怎么入学习之门,学到什么程度,能找到什么样的工作,这些问题就会困扰着我们;针对这种情况,我将不断推出一系列的Java课程,通过这一系列的课程,为大家搭建一条比较完整的Java学习链条,我并不准备回答大家“学到什么程度,能找到什么样的工作这种问题“,因为当你学到一定的程度之后,你自然就会找到答案,但有一点可以确定:仅仅学习完本门课程还不够,还需要继续深入学习下去! 讲解中所安装的是jdk版本是jdk 12版本,但这并不意味着我们要把这个版本中的所有知识讲解的面面俱到,把最有用、最实用,最能帮助大家加薪的知识挑选出来讲解是老师的重要责任; 讲师介绍: 王健伟老师,网名:狂想(KuangXiang),1995年毕业于哈尔滨工程大学计算机及应用专业,20多年软件开发经验,经历过数十个软件项目开发包括网络通信、网络安全、网络游戏等领域,多年的摸爬滚打使自身具备了极其深厚的开发实力和实战经验。 深圳知名网络安全公司安络科技(www.cnns.net)有限公司创始人之一、中国首套网络安全在线扫描评估系统项目负责人,电子工业出版社2003年《Crystal Reports水晶报表设计与开发实务》书籍作者,全球同服独立游戏《冒险之路》制作人。 在教学上,老师自带讲课天赋,善于用最清晰、最通俗的语言把复杂问题简单化,让你听了就能懂,当节学完基本就能掌握,老师能够为你节省大量的学习时间并能达到极好的教学效果!
©️2020 CSDN 皮肤主题: 我行我“速” 设计师:Amelia_0503 返回首页