Java基础知识汇总

Java基础知识

1、Java语言的优点:

1)Java是纯面向对象语言

2)与平台无关性,一次编译到处运行

3)Java提供了狠多内置类库

4)提供了对web应用的支持

5)具有较好的安全性(数组边界检测、Bytecode检测)和健壮性(强制型机制、垃圾回收器、异常处理)

6)去除c++难以理解的一些特性(头文件 指针 运算符重载 多重继承)

2、java与c++的异同:

1)Java为解释型语言,c++为编译型语言,java会慢但是跨平台

2)Jave为纯面向对象,c++既面向对象又能面向过程。Jave无全局变量和全局函数

3)Java没有指针,更安全

4)Java不支持多继承但是有接口概念

5)Java不需人工分配管理内存(申请 释放),提供垃圾回收器自动回收。当堆栈或静态存储区没有对这个对象的引用时,就会被回收。没有析构函数,但是有finalize()方法。

6)Java没有运算符重载,没有预处理功能。

3、public static void main(String [] args)是程序的入口。

4、java可有多个main()文件,但只有与文件名相同的用public修饰的类的main()才能作为程序的入口。注:有且仅有一个类被public修饰并与文件同名。

5、静态快在main函数之前执行。初始化执行顺序:父静态变量 父静态代码块 子静态代码变量 子静态代码块 父非静态变量 父非静态代码块 父类构造函数 子非静态变量 子非静态代码块 子类构造函数

6、构造函数:

1)与类同名,无返回值

2)可以有多个,根据参数不同

3)总是伴随new操作一起调用

4)主要用来初始化对象

5)不能被继承

6)可用super来显示调用父类构造函数

7、浅复制仅仅复制考虑的对象,不复制它引用的对象。深复制两者都复制

8、面向对象和面向过程有什么不同:

1)面向对象是用符合常规思维的方式去处理客观世界的问题,面向过程是则重以事件为中心,模块化。

2)面向对象是使计算机世界向客观世界靠拢,使问题的处理更清晰。面向过程是清晰准确表达过程的模块,把客观世界的问题抽象成计算机可以处理的过程。

9、面向对象的特征和优点:抽象 继承 封装 多态有较高的开发效率,代码可重用。较高的可维护性,代码更清晰明了。

10、java只支持单根继承,extends继承是 is a 关系,组合是 has a关系。

在java语言中能用到组合的尽量不要用继承。

11、多态:

重载(同个类中有多个同名方法) 水平关系

重写(子类重写父类,方法名和参数列表相同) 垂直关系

12、抽象类和接口的异同:

1)只要包含一个抽象方法都是抽象类,接口的方法全部是抽象方法,称为纯抽象类。

2)抽象类的子类需实现父类的抽象方法。

3)接口中的变量都默认为:static final 必须赋初值。

4)接口实现用implements。一个类可以实现多个接口实现类似多继承的关系。

5)接口被运用于常用的功能,如:添加删除。抽象类用于生活公共类的角色,不适用经常对代码修改的情况

13、this和super的区别:

This用来指向当前实例对象

Super用来访问父类的方法和成员变量

子类继承父类时,子类构造函数中super()必须放第一句。

14、break continue return 的区别:

Break 用于直接强行跳出当前循环,不执行剩余代码

Continue 用于停止当次循环,回到起始处进行下次循环。

Return 跳转 用来表示从一个方法中返回。

Break out跳出多重循环

15、static的作用:

a 为对象分配单一的存储空间,与创建对象个数无关

b 实现某个方法或属性和类而不是与对象关联在一起

C 变量可达到全局的效果,在内存中只有一个复制

16、不可变类的实现:

类中的所有成员变量被private修饰

没有写set方法

类定义final

17、值传递和引用传递的区别:

值传递:实参会把它的值传递给形参

引用传递:传递的是对象,形参和实参指向同个存储单元。

18、有八种基本数据类型,类型转换的优先级:byte不能与booleam互换。

19、round 表示四舍五入 ceil表示向上取整 floor表示向下取整,i++表示先执行后加

一,++i表示先加一后执行。

20、String s1=”abc”是存放在常量区

String s2=”abc”s2应用常量区的对象,不会创建新的对象。

String s3=new String(“abc”)是在堆中创建对象,

String s4=new String(“abc”)又必须在堆中创建新对象。

21、“==”与“equals”

“==”用来比较两个变量的值是否相等,如果一个变量指向饿数据是对象(引用类型),就有两块内存。对象本身占用一块内存(堆内存),变量也占用一块内存。String s4 = new String(“abc”)。变量s所对应的内存中存储的数值就是对象占用那块内存的首地址。如果想看两个变量是否指向同一个对象,即要看他们对应内存中的数值(首地址)是否相同。

equals比较的不是引用,而是数值内容,即比较的是abc。

22、数组也是对象。数组提供length属性来获取数组的长度,而String是通过length()计算。

23、异常处理

1)try catch finally模式

2)Finally块中的代码一定会被执行,除非这两种情况:当程序在try之前就遇到异常或者在try中通过exit()强制退出。

3)jvm将错误表示为一个异常并抛出,通过catch来捕获,然后进行处理。安全性和鲁棒性。

4)异常分为两大类:错误(error)和异常(Excetion)

异常分为:检查异常和运行异常。

检查异常又称为编译异常。

比如:IO异常、SQL异常

运行异常为:空指针异常、类型转换异常、算术异常、数组越界异常、数组存储异常、缓存区溢出异常。

先捕获子类后捕获父类,尽早抛出异常,能处理就处理,不处理就抛出,运行时异常实际不必处理,直接抛出。

24、Java IO:字节流(8位)不会用到缓存 字符流(16位)用到缓存

25、Socket称为套接字。用来实现不同虚拟机或不同计算机之间的通信。

分为两种类型:面向连接的TCP,可靠。无面向连接的UDP,不可靠。

任何一个Socket都是由一个IP地址和端口号唯一确定。

26、java平台独立性是指一个平台上编写和编译程序,而在其他平台上运行。有JVM和java API。

Java语言是一种动态解释型语言,类class只有被加载到JVM上才能运行。不会一次加载全部类后执行,而是先加载基类,其他类是需要时再加载。

27、垃圾回收GC:回收不会再使用的内存。三个任务:分配内存;确保被引用的内存不被错误地回收;回收不再被引用的对象的内存。

28、java中内存泄露问题:

两种情况:

1)在堆中申请的空间没有得到释放

2)对象不再被使用,但是仍在内存中保留着

原因:静态集合类、各种连接、监听器、变量不合理的作用域

29、java中堆和栈的区别:

分配在栈:基本数据类型的变量、对象的引用变量

变量出了作用域就会被自动释放

分配在堆:引用类型变量、需要通过new创建的变量。主要为运行时创建的对象

JVM是基于堆栈的虚拟机,每个java程序都运行在一个单独的JVM实例上,所以一个java程序中的对个线程运行在,每个实例又唯一对应一个堆,所以这些线程之间会共享堆内存。

只需要申请堆空间,不需要考虑释放问题。

使用栈中的引用变量来访问堆中的数组和对象。

堆只要是用来存放对象的,栈主要是用来放执行程序的。

栈的速度快,但大小和生存期确定,缺乏灵活性。堆是动态分配内存,灵活性强但速度慢。

30、容器:java Collections框架:list 、Queue 、set 、stack 、map
list 、Queue 、set 、stack都继承Collection接口。

1)List是有序的Collection。按对象的进入顺序保存对象,可保存重复对象。

2)Set是集合的概念,集合中不能有重复的元素。

3)map是键映射到值得数据结构。值可以重复,但是键是唯一的,不能重复。

31、迭代器:是一个对象,一种访问一个容器对象的各个元素,而又不必暴露该对象内部的细节方法。

1)使用容器的iterator()方法返回一个Iterator,然后通过Iterator的next()方法返回一个元素。

2)使用Iterator的hasNext()方法判断容器中是否还有元素,如果有可以使用next()获取下一个元素。

3)通过remove()来删除迭代器返回的元素。

32、collection和collections的区别:

Collection:是一个集合接口,为各个具体集合提供最大化的统一操作。

Collections:是针对集合类的一个包装类。不能实例化,相当于一个工具类,服务于Collection框架。

33、多线程:

线程:执行代码的一个执行单元。

进程:一个正在执行的程序

各线程共享程序的内存空间(代码段、数据、堆空间)有独立的栈空间。

线程优点:

1)减少程序的响应时间

2)相比进程,创建个切换开销小

3)多CPU和多核本身就具有多线程能力

4)简化程序结构,便于理解和维护。

34、如何实现java多线程:

1)继承Thread类,重写run()方法

2)实现Runnable接口,并实现接口的run()方法。

3)实现Callable接口,重写call()方法。

35、同步

要想实现同步操作,必须获得每个线程对象的锁,获得它可以保证同一时刻只有一个线程能够进入临界区,并且在这个锁被释放之前,其他线程就能再进入临界区,如果还有其他线程想要获得该对象的锁,只能进入等待队列等待。

36、多进程同步的实现方法:

1)synchronized关键字

2)Wait()方法与notify()方法

3)Lock

37、终止线程的方法:stop()方法与suspeng()方法。

Java提供两种线程:守护线程(服务进程)、用户进程。

38、如何通过JDBC来访问数据库:

1)加载JDBC驱动器,将JDBC驱动 jar包复制到lib下

2)加载JDBC驱动

3)创建数据库连接

4)建立Statement对象或是PrepareStatement对象。用于对数据库操作

5)执行SQL语句

6)访问结果集ReaultSet对象

7)依次关闭ReaultSet Statement Connection。

39、Class.forName()方法的作用是把类加载到JVM中。

在使用JDBC连接数据库之前,一般会调用Class.forName(“com.mysql.jdbc.Driver”)方法来加载驱动。
Statement用于执行不带参数的简单SQL语句,并返回它所生成结果的对象。每次执行SQL,数据库都会编译该SQL语句。
PrepareStatement可执行带参数的。效率更高,可读性,可维护性更高,安全性更好

40、JDBC提供了getString()、getInt()、getIData()等方法从ResultSet中获取数据。

41、在JDBC连接时连接池数目有限,所以一定要保证释放不再使用的连接。

createStatement和prepareStatement最好放在循环外面,而且使用statement后需要及时关闭。最好是执行一次executeQuery后马上关闭statement。

42、Hibernate是JDBC的封装。采用配置文件的形式将数据库的连接参数写到XML中,但
是最后对数据库的访问还是要通过JDBC来完成。

43、Hibernate是个持久层框架,它将表中的信息映射到XML中,再从XML文件映射到相应的持久化类中。

Java Web

1、浏览器的作用:

1)、完成与服务器端的交互。

2)、完成HTML的解析,实现用户需要看的内容以直观的信息展示出来。

2、HTTP的请求方法有:GET POST HEAD TRACE OPTIONS

GET:是最简单的请求方法,从服务器端获取用户所需的资源,并将其作为响应返回给客户端。获取服务器端的信息(查询)。若需上传数据则添加到URL后面。数据暴露安全不够,并且数量受限制。

POST:除了能够从服务器端获取资源外,同时还可以向服务器上传数据。上传的数据不是在URL中明文显示,可以上传大量数据,用户不可见

3、Servlet:

采用Java语言编写的服务器程序,运行于Web服务器中的Servlet容器中,主要功能是提供请求、响应的服务模式,可以生成动态的Web内容。

Web服务器获取到一个对servlet的请求时,会将其交给Tomcat容器进行处理,容器再通过调用Servlet的方法(doGet() doPost())来响应请求。

步骤:

发起servlet请求——>Web服务器交给容器处理——>容器创建两个对象HttpServletResponse HttpServletRequire——>创建单独线程,并将两个对象以参数形式传递进入线程——>线程容器调用Servlet的service()方法中的doGet()或doPost()完成响应——>容器将响应消息以HTML形式返回给客户。

4、Servlet的生命周期:

加载——>创建——> 初始化——> 处理客户请求——> 卸载

5、JSP的优点:

JSP:嵌入java代码的html文件。主要解决servlet与HTML的分离。实现业务逻辑与视图进行分离。

6、JSP与servlet的异同:

相同:

本质都是Servlet文件,只要是JSP能完成的工作,使用Servlet都能完成.JSP最终都是会转化为servlet来运行。

不同:

Servlet是处于控制层,主要是做流程控制和业务处理。JSP是处于视图层,主要用于显示。

Servlet没有内置对象,JSP中的内置对象主要是通过HttpServletResponse 对象、HttpServletRequire对象得到。

7、MVC模型:

模型层(M):实现系统业务逻辑。JavaBean或EJB

视图层(V):实现用户的交互。JSP

控制层(C): 实现视图与模型的逻辑控制。servlet

8、控制层:

控制器接收用户的输入并调用模型和视图去完成。

控制器本身不输出任何东西,也不执行任何处理。

只是接收请求并决定使用哪个模型去处理请求,决定使用哪个视图去显示模型处理返回数据

9、MVC的优点:

1)低耦合性,实现视图层与逻辑层分离。

2)高重用性和可适用性

3)部署迅速

4)容易维护

10、Servlet中的forward和redirect有什么区别:

Forward是服务器内部的重定向,服务器直接访问目标地址的url,地址不变。

Redirect:客户端的重定向,完全跳转,地址改变。

11、JSP的内置对象:

1)require(请求对象)

2)Response(响应对象)

3)pageContext(页面上下文对象)

4)Session(会话对象)

5)Application(应用程序对象)

6)Out(输出对象)

7)Config(配置对象)

8)Page(页面对象)

9)Exception(异常对象)

12、request对象的方法:

1)setAttribute(String name ,Object)设置name的属性值

2)getAttribute(String name )获取name的属性值

3)getParameter(String name )获取用户提交的数据,name与表单的name对应一致

4)getSession()用来获取与请求相关的会话

13、JSP中的动作:

1)JSP:include 用来页面请求时引进一个文件

2)Jsp:useBean 用来实例化一个javabean

3)Jsp:setProperty 用来设置已经实例化的bean对象的属性

4)Jsp:getProperty 用来获取已经实例化的bean对象的属性

5)Jsp:foward 用来将请求跳转到另外一个页面

14、JSP中include指令和include动作

指令:<% @include file =”test.jsp “%>

动作:

15、会话跟踪技术:

对同一个用户对服务器的连续请求和接收响应进行监视。

1)page一个页面

2)Request一个请求

3)Session 一个用户体验

4)Application 整个Web应用程序

16、字符串编码:GBK 、UTF-8

17、什么是Ajar

异步js与XML。

结合了java技术、js技术、xml技术。 客户端技术

功能:在不刷新页面的情况下通过与服务器进行少量的数据交互来提高页面的交互性,减少响应时间,改善用户体验

18、cookie和session的区别:

Session:指用来在客户端与服务器端之间保持状态的解决方案以及存储结构。

Cookie:由Web服务器保存在用户浏览器上的小文件。

19、web服务器:接收来自于客户端的请求,然后把对请求的处理结果反馈个客户端

两大web服务器:IIS Apache。

20、web容器:TomcatJBoss

负责给servlet提供http请求和响应对象,调用doGet()过doPost()方法来处理用户请求。

21、EJB的类别:

1)session Bean(会话Bean)实现服务器端的业务逻辑,协调Bean之间的交互

2)Entity Bean(实体Bean)资料组件 代表数据库中的记录

3)Message Bean(消息驱动 Bean)处理异步消息,一般不是由用户来调用的

22、EJB与Javabean的异同:

1)EJB:主要用于服务器端的开发,Javabean主要用在客户端的开发。

2)EJB组件可以部署在EJB容器中,不直接访问组件,而是通过容器访问,javabean不可部署

3)EJB是分布式对象,可以被远程调用,javabean不是,只能在内部被访问

23、EJB的角色:

1)Enterprise Bean Provider(企业级组件开发者)

2)Application Assembler(应用组合者)

3)EJB Deployer(EJB部署者)

4)EJB Sever Provider(EJB服务器提供者)

5)EJB Container Provider(EJV容器提供者)

6)System Administrator(系统管理员)

24、数据库连接池的工作机制:

原因:

1)建立数据库是非常耗时的操作

2)数据库连接个数是有限的

数据库连接池负责分配 管理 释放数据库连接。当客户需要访问数据库是,就可以直接从池中获取数据库的连接,而不用去创建连接,同时标志为忙状态。

25、JAVAEE开发的调优方法:

1)优化设计

2)尽可能使用数据库连接

3)使用框架

4)优化I/O

5)优化查询

26、struts框架的优点:

1)实现表现和逻辑的分离

2)提供页面导航功能

3)提供表单验证

4)提供数据库连接池

5)提供了异常处理机制

6)支持国际化

27、数据验证分为:

1)表单验证

2)业务逻辑验证

28、国际化:

程序在不修改内部代码的情况下,根据不同地区显示相应的界面

29、什么事控制反转:

也称依赖注入,一种降低对象之间耦合关系的设计思想。

使上层不仔依赖于下层的接口,调用者(子)决定被调用者(父)。通过注入一个实例化的对象来实现解耦和目的。

30、Spring框架

提供了对轻量级loc的良好支持,也提供对AOP技术的非常好的封装。

31、Hibernate框架,持久层框架

实现Java对象与关系数据库记录的映射,简化开发人员访问数据库的流程,提高软件开发的效率

任何使用到JDBC的都可以使用Hibernata

提高性能方法:

1)延迟加载

2)缓存技术

3)优化查询语句

32、实现分页:

1)Hibernate自带的分页机制

2)用SQL语句实现,使用limit关键字

33、SSH:

struts实现视图部分

Hibernate实现模型部分

Spring实现业务部分

采用SSH框架,不仅能实现视图、控制器与模型的彻底分离,而且还能实现业务逻辑与数据持久层的分离

总结

以上所述就是本文关于Java编程语言的基础知识汇总的全部内容,虽不至于详细,但还是比较全面的,希望对大家能有所帮助。

(0)

相关推荐

  • Java的Socket网络编程基础知识入门教程

    一.TCP/IP简介 TCP/IP协议族是互联网使用的协议,也可以用在独立的专用网络中. TCP/IP协议族包括了IP协议.TCP协议和UDP协议. IP协议使用IP地址来分发报文,但它是尽力而为的服务,报文可能丢失.乱序或者 重复发送.TCP和UDP协议在IP协议基础上增加了端口号,从而在两台主机的应用 程序间建立起透明的连接. 不同的是,TCP协议会对IP层的错误进行修复,它通过握手消息在主机间建立连接, 之后通过在消息中加入序列号来恢复消息中的错误.而UDP只是简单地扩展了IP协议, 使它

  • java 基础知识之网络通信(TCP通信、UDP通信、多播以及NIO)总结

    java 基础知识之网路通信总结 在这篇文章里,我们主要讨论如何使用Java实现网络通信,包括TCP通信.UDP通信.多播以及NIO. TCP连接 TCP的基础是Socket,在TCP连接中,我们会使用ServerSocket和Socket,当客户端和服务器建立连接以后,剩下的基本就是对I/O的控制了. 我们先来看一个简单的TCP通信,它分为客户端和服务器端. 客户端代码如下: 简单的TCP客户端 import java.net.*; import java.io.*; public class

  • javaBean的基础知识及常见乱码解决方法

    javaBean的基础知识及常见乱码解决方法 乱码问题应该是做javaWeb开发人员都遇到过的问题吧,这个问题当时还影响了我学习Java的想法,甚至有过想放弃的想法,没办法,当时年轻,呵呵.其实产生乱码问题的原因有很多,解决乱码的问题也有很多,现在就一一来看一下: 出现乱码的地方大致可以分为以下三种: 1 jsp页面中 2 jsp页面之间相互传参的参数 3 与数据库中数据的存取 解决方案大致可以分为三种: 1 出现在jsp页面中,是由于没有设置jsp页面的中文字符编码.   2 出现在jsp页面

  • servlet基础知识_动力节点Java学院整理

    Servlet是一门专门用于开发动态web资源的技术,Sun公司在其API中提供了一个Servlet接口(当然,我们不会去直接实现这个接口,而是去继承其实现类会更好),因此,狭义的Servlet是指这个接口,广义的Servlet是指任何实现了这个Servlet接口的类. 使用Servlet开发一个动态web资源,其实就是开发一个Java程序向浏览器输出数据. Servlet其实就是一个运行在服务器上得Java程序,Servlet是J2EE十三门技术中的一种,因此我们不能去看J2SE的API文档,

  • Java 面试题基础知识集锦

    经典的Java基础面试题集锦,欢迎收藏和分享. 问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示"main方法不是public的". 问题:Java里的传引用和传值的区别是什么? 答案:传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝. 问题:如果要重写一个对象的equals方法,还要考虑什么? 答案:hashCode. 问题:Java的"一次编写,处处运行"是如何实现的? 答案:Java程序会被编译成字节码组成

  • Java中的数组基础知识学习教程

    数字 通常情况下,当我们处理数字时,使用原始数据类型,如 byte,int,long,double 等. 示例 int i = 5000; float gpa = 13.65; byte mask = 0xaf; 然而,在开发中,我们会遇到需要使用对象而不是原始数据类型的情况.为了实现这个, Java 为每个原始数据类型提供包装类. 所有的包装类 (Integer, Long, Byte, Double, Float, Short) 是抽象类 Number 的子类. 这种包装是由编译器处理,这个

  • Java基础知识汇总

    Java基础知识 1.Java语言的优点: 1)Java是纯面向对象语言 2)与平台无关性,一次编译到处运行 3)Java提供了狠多内置类库 4)提供了对web应用的支持 5)具有较好的安全性(数组边界检测.Bytecode检测)和健壮性(强制型机制.垃圾回收器.异常处理) 6)去除c++难以理解的一些特性(头文件 指针 运算符重载 多重继承) 2.java与c++的异同: 1)Java为解释型语言,c++为编译型语言,java会慢但是跨平台 2)Jave为纯面向对象,c++既面向对象又能面向过

  • 学习Python列表的基础知识汇总

    千里之行,始于足下.要练成一双洞悉一切的眼睛,还是得先把基本功扎扎实实地学好.今天,本喵带大家仔细温习一下Python的列表.温故而知新,不亦说乎. 当然,温习的同时也要发散思考,因为有些看似无关紧要的.约定俗成的语言习惯,例如数组索引为何从0开始,其背后可能大有来历.知其然,亦需知其所以然啊喵喵喵~~~ 最后,在基础知识之上,更要探索进阶,例如学习生成器表达式,这样既能更扎实地掌握基础,又能融会贯通,获得更全面的认知升级. Python的列表是怎样滴? 列表(list)是一种有序的集合,可以随

  • node.js基础知识汇总

    一.node介绍 1.node的应用场景 工具类 gulp webpack vite (node可以让js运行在服务器) 可以做服务端 优化ssr 可以做中间层 (解决跨域问题,格式化数据) 2.性能 非阻塞 异步I/O(当这个方法调用完毕后不会立即返回结果) 事件驱动(发布订阅模式) 3.优势 在Java.PHP或者.NET等服务器语言中,会为每一个客户端连接创建一个新的线程.而每个线程需要耗费大约2MB内存.也就是说,理论上,一个8GB内存的服务器可以同时连接的最大用户数为4000个左右.要

  • java 基础知识之IO总结

    java  基础知识之IO总结     我计划在接下来的几篇文章中快速回顾一下Java,主要是一些基础的JDK相关的内容. 工作后,使用的技术随着项目的变化而变化,时而C#,时而Java,当然还有其他一些零碎的技术.总体而言,C#的使用时间要更长一些,其次是Java.我本身对语言没有什么倾向性,能干活的语言,就是好语言.而且从面向对象的角度来看,我觉得C#和Java对我来说,没什么区别. 这篇文章主要回顾Java中和I/O操作相关的内容,I/O也是编程语言的一个基础特性,Java中的I/O分为两

  • Java基础知识杂文

    1.基本概念 IO是主存和外部设备(硬盘.终端和网络等)拷贝数据的过程.IO是操作系统的底层功能实现,底层通过I/O指令进行完成. 所有语言运行时系统提供执行I/O较高级别的工具.(c的printfscanf,java的面向对象封装) 2.Java标准io回顾 Java标准IO类库是io面向对象的一种抽象.基于本地方法的底层实现,我们无须关注底层实现.InputStream\OutputStream(字节流):一次传送一个字节.Reader\Writer(字符流):一次一个字符. 3.nio简介

  • java基础知识 super和this使用解析

    这篇文章主要介绍了java基础知识 super和this使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 super关键字的用法有三种: 1.在子类的成员方法中,访问父类的成员变量 2.在子类的成员方法中,访问父类的成员方法 3.在子类的构造方法中,访问父类的构造方法 this和super区别 super关键字用来访问父类内容,this关键字用来访问本类内容. 1.在本类的成员方法中,访问本类的成员变量 2.在本类的成员方法中,访问本类的

  • 详解Java基础知识——JDBC

    JDBC Java DataBase Connectivity,java数据库连接,为了降低操作数据的难度,java提供jdbc,按照java面向对象特点,对操作进行了很多封装. JDBC提供了很多接口,然后不同数据库厂商去实现这个接口,到底底层如何去实现,不同的数据库不一样,不同的数据库厂商需要提供接口实现类(驱动类.驱动程序 Driver.驱动) 我们连接不同的数据库,我们只需要使用不同的驱动即可. J:Java:提供访问数据库的规范(接口), DBC:接口的实现,厂商去实现这个接口. JD

  • C#多线程基础知识汇总

    最近自己写了个小爬虫,里面用到了多线程技术,忽然发现对此技术竟然有些陌生了,于是乎开始疯狂的去问度娘,在此记录下来,以便自己和各位小伙伴们学习. 一.什么是线程 一个应用程序就相当于一个进程,进程拥有应用程序的所有资源进程包括线程,进程的资源被线程共享,但不拥有线程.我们可以打开电脑中的任务管理器,运行的.exe都是一个进程,里面的分支是线程. 二.多线程 多线程其实就是进程中一段并行运行的代码 1. 创建并启动线程 static void Main() { //获取线程Id var threa

  • JAVA多线程知识汇总

    线程概念 进程:启动一个应用程序就叫一个进程. 接着又启动一个应用程序,这叫两个进程.每个进程都有一个独立的内存空间:进程也是程序的一次执行过程,是系统运行程序的基本单位:系统运行一个程序即是一个进程从创建.运行到消亡的过程. 线程:线程是在进程内部同时做的事情,一个进程中可以有多个线程,这个应用程序也可以称之为多线程程序. 一个程序运行后至少有一个进程,一个进程中可以包含多个线程 线程调度: 分时调度:所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间. 抢占式调度:优先

随机推荐