![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机科学基础
文章平均质量分 69
Shawn_wg
生命不息,学习不止~~~
展开
-
Java核心知识点-JVM结构和工作方式
一、JVM体系结构 1.1 JVM中主要包括(PC寄存器,栈,)(堆,方法区,)本地方法区 一个java线程中,包括PC寄存器(保存当前执行的指令位置),和栈帧(一个方法对应一个栈帧),本地变量(保存计算中的临时数据),当一个线程结束后,线程内所有数据就自动销毁,不需要垃圾回收。PC寄存器和栈 将1压入栈中,将2压入栈中,将1,2弹出计算1+2,将3压入栈顶,OVER。方法区:方法区是原创 2016-03-22 11:09:38 · 989 阅读 · 0 评论 -
Maven-setting配置详细说明
文件存放位置全局配置: ${M2_HOME}/conf/settings.xml用户配置: ${user.home}/.m2/settings.xmlnote:用户配置优先于全局配置。${user.home} 和和所有其他系统属性只能在3.0+版本上使用。请注意windows和Linux使用变量的区别。 settings.xml详解声明规范x原创 2016-07-13 16:02:09 · 15265 阅读 · 1 评论 -
Git详细使用教程
一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,原创 2016-07-11 18:46:55 · 443 阅读 · 0 评论 -
阻塞与非阻塞-同步与异步
简单点说:阻塞就是干不完不准回来, 非阻塞就是你先干,我现看看有其他事没有,完了告诉我一声我们拿最常用的send和recv两个函数来说吧... 比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈的输出缓冲区,它执行成功并不代表数据已经成功的发送出去了,如果TCP/IP协议栈没有足够的可用缓冲区来保存你C原创 2016-07-19 16:04:30 · 265 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分转载 2016-07-29 23:24:36 · 414 阅读 · 0 评论 -
设计模式在jdk中的应用
在JDK(Java Development Kit)类库中,开发人员使用了大量设计模式。 创建型模式:(1) 抽象工厂模式(Abstract Factory)• java.util.Calendar#getInstance()• java.util.Arrays#asList()• java.util.ResourceBundle#getBundle转载 2016-08-15 20:31:16 · 3494 阅读 · 0 评论 -
B树简单理解
平衡二叉排序树便于动态查找,因此用平衡二叉排序树来组织索引表是一种可行的选择。当用于大型数据库时,所有数据及索引都存储在外存,因此,涉及到内、外存之间频繁的数据交换,这种交换速度的快慢成为制约动态查找的瓶颈。若以二叉树的结点作为内、外存之间数据交换单位,则查找给定关键字时对磁盘平均进行㏒㏒次访问是不能容忍的(树的深度过大而造成磁盘I/O读写过于频繁,进而导致查询效率低下)。磁盘读取数据原创 2016-07-21 13:16:10 · 11803 阅读 · 1 评论 -
就那么几种垃圾收集器
1. Serial收集器 Serial收集器是JAVA虚拟机中最基本、历史最悠久的收集器,在JDK 1.3.1之前是JAVA虚拟机新生代收集的唯一选择。Serial收集器是一个单线程的收集器,但它的“单线程”的意义并不仅仅是说明它只会使用一个CPU或一条收集线程去完成垃圾收集工作,更重要的是在它进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束。 Serial转载 2016-08-16 16:51:21 · 4148 阅读 · 0 评论 -
Socket过程详细解释(包括三次握手建立连接,四次握手断开连接)
本文的主要内容如下:1、网络中进程之间如何通信?2、Socket是什么?3、socket的基本操作3.1、socket()函数3.2、bind()函数3.3、listen()、connect()函数3.4、accept()函数3.5、read()、write()函数等3.6、close()函数4、socke原创 2016-06-27 12:26:10 · 28982 阅读 · 2 评论 -
Java-ACM注意点
一、Java之ACM注意点1. 类名称必须采用public class Main方式命名2. 在有些OJ系统上,即便是输出的末尾多了一个“ ”,程序可能会输出错误,所以在我看来好多OJ系统做的是非常之垃圾3. 有些OJ上的题目会直接将OI上的题目拷贝过来,所以即便是题目中有输入和输出文件,可能也不需要,因为在OJ系统中一般是采用标准输入输出,不需要文件4. 在有多行转载 2016-09-12 13:58:22 · 2321 阅读 · 0 评论 -
回车”(Carriage Return)和“换行”(Line Feed)起源
一:回车”(Carriage Return)和“换行”(Line Feed)起源 首先,弄清两个概念: 回车CR-将光标移动到当前行的开头。 换行LF-将光标“垂直”移动到下一行。(而并不移动到下一行的开头,即不改变光标水平位置) 在计算机还没有出现之前,有一种叫做电传打字转载 2016-08-11 18:55:40 · 2064 阅读 · 0 评论 -
Thread和Runnable理解
结果:4个任务被执行了。卖票:ticket10卖票:ticket9卖票:ticket8卖票:ticket7卖票:ticket6卖票:ticket5卖票:ticket4卖票:ticket3卖票:ticket2卖票:ticket1卖票:ticket10卖票:ticket9卖票:ticket8卖票:ticket7卖票:ticket6卖票:t原创 2016-10-06 19:31:02 · 508 阅读 · 0 评论 -
Java设置代理方式
使用Java的HttpURLConnection类可以实现HttpClient的功能,而不需要依赖任何其他类库。所有有时候大家就直接使用它来完成一些简单(或复杂)的功能。但是你活在伟大的{print G.F.W}后面,如果你需要访问的网站被墙了,那HttpURLConnection类就会出现连接超时的错误。这时候就需要给他设置代理(Proxy)了。 设置代理(Proxy)可以转载 2016-06-30 15:04:46 · 6956 阅读 · 0 评论 -
Java核心知识点-Java多线程
先看一图:本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。首先讲一下进程和线程的区别: 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小转载 2016-03-24 13:21:04 · 433 阅读 · 1 评论 -
数据结构与算法-树的遍历
树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用。二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2的 i -1次方个结点;转载 2016-04-01 17:03:24 · 481 阅读 · 0 评论 -
Java核心知识点-Java编译原理
一、javac是什么 javac就是一个种编译器,它的功能就是将java源代码翻译成JVM可以识别的二进制码,简单一点就是将.java文件转换成.class文件原创 2016-03-21 20:38:54 · 1284 阅读 · 1 评论 -
Java核心知识点-类加载器
一、ClassLoader是什么 ClassLoader就是类加载器,简单来说就是.class文件执行的时候,先创建一个ClassLoader对象,由这个对象去找.class在哪里,然后将.class文件加载到虚拟机中去执行。原创 2016-03-21 21:22:56 · 301 阅读 · 0 评论 -
计算机组成
计算机基础知识点1. 计算机硬件组成 从图片里可以看到,除了CPU,其他部分的硬件都是提供输入/输出的作用,CPU就是将各种输入的数据进行各种处理,然后返回数据。这里的主存就是我们平常说的内存(电脑比较卡,就再装一个8g内存条,或者买一个固态硬盘SSD),程序执行时,会将各种数据先放到内存中,为什么呢?因为它读取数据非常的快,cpu可以随时拿到数据2. CPU工作原理我们都知道CPU的根本任原创 2016-03-10 13:40:05 · 678 阅读 · 0 评论 -
Java核心知识点-synchronized关键字
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synch转载 2016-03-23 13:48:10 · 350 阅读 · 0 评论 -
Java核心知识点-一些基本概念
Java.lang: String,Integer,Object/Process,Runtime,ClassLoader,ThreadJava.net: 网络相关Socket,IPAddress,URL.(HttpClient是Apache子项目)Java.io : 输入输出,字节流InputStream/OutputString,字符流Reader/Write原创 2016-03-23 18:42:47 · 577 阅读 · 1 评论 -
Git详细教程
GIT 学习手册简介本站为 Git 学习参考手册。目的是为学习与记忆 Git 使用中最重要、最普遍的命令提供快速翻阅。 这些命令以你可能需要的操作类型划分,并且将提供日常使用中需要的一些常用的命令以及参数。本手册将从入门到精通指导大家。 首先,我们要从如何以 Git 的思维方式管理源代码开始。如何以 GIT 的方式思考(这节可以不用看懂,接着看下面的内容,看完就全懂了。)转载 2016-03-25 18:39:45 · 2437 阅读 · 0 评论 -
计算机基础-Socket详解
Linux的SOCKET编程详解1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信号(signal)UNIX原创 2016-05-01 11:13:43 · 9920 阅读 · 0 评论 -
HTTP图解笔记
1.Http+SSL(认证+加密+完整性保护)=HttpsSSL介于应用层和TCP层之间。应用层数据不再直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并增加自己的SSL头。2.keep-alive作用可以连接后发送多个http请求。2.websocket通信,服务器也可以向客户端发送数据与http关系如图:原创 2016-06-27 13:04:51 · 491 阅读 · 0 评论 -
IO - 同步,异步,阻塞,非阻塞
当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link 。写完之后发现很多人都很喜欢,我还是非常开心的,也说明这个问题确实困扰了很多人。随着学习的深入,渐渐的感觉原来的理解有些偏差,但是还是没引起自己的重视,觉着都是一些小错误,无伤大雅。直到转载 2016-11-10 18:27:07 · 275 阅读 · 0 评论