来张图:这个帖子写给新人的,老玩家就直接无视他,因为这个完完全全是白话基础原理. 解释:上面的图是从上往下依次调用的关系. 操作系统(Windows/Linux)管理硬件,让硬件能够正常.合理的运行,当然各种硬件的驱动实现了操作系统的接口,操作系统调用这些接口就能管理硬件,操作系统还像程序员提供了一层接口,叫做系统呼叫层,程序员可以面向这一层的接口编程,来实现对计算机的控制,而不同的操作系统(或者说不同的CPU架构)所提供的接口都是不一样的,Windows和Linux提供给的那肯定是完全不一样的…
在java中类和类之间的关系基本上有依赖.关联.聚合.组合等 一.继承关系     继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性.在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口. 二.实现关系     实现指的是一个class类实现interface接口(可以是多个)的功能,实现是类与接口之间最常见的关系.在…
封装 一个封装的简单例子 封装就是把对象的属性(状态)和方法(行为)结合在一起,并尽可能隐蔽对象的内部细节,成为一个不可分割的独立单位(即对象),对外形成一个边界,只保留有限的对外接口使之与外部发生联系. 封装的原则:使对象以外的部分不能随意存取对象的内部数据,从而有效的避免了外部错误对它的"交叉感染".数据隐藏特性提升了系统安全性,使软件错误能够局部化,减少查错和排错的难度.如:微波炉,将线路板(属性)封装在微波炉内部,使用者无法接触到,而通过面板按钮(方法)简单的操控线路板工作.…
类与接口之间的关系 : 继承 类与类之间的关系 :继承关系  包含关系 类与对象之间的关系 : 实例 UML 类图中类与类之间的关系: 泛化关系(generalization) 关联关系(association) 聚合关系(aggregation) 合成关系 (compostion) 依赖关系 (dependency) 1.泛化(Generalization)[泛化]表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系.一般化的关系是从子类指向父类的,与继承或实现的方法相反.…
抽象类和抽象方法之间的关系有抽象方法的类,一定是抽象类:抽象类不一定有抽象方法当子类继承抽象类时,必须要将抽象类中的抽象方法全部实现(或者称为重写),否则子类依然是抽象类因为子类是继承父类全部内容,所以也就相当于子类中也有了抽象方法,通过重写,可以将抽象方法覆盖. 抽象类的特点:必须有abstract关键字修饰,不可以通过new来创建对象,抽象方法不可以写函数体(非抽象方法必须写函数体) 关键字小总结:不想让别的类重写的方法,用final:内容不确定的方法,用abstract(子类中用法不一样)…
大数据无疑是目前IT领域的最受关注的热词之一.几乎凡事都要挂上点大数据,否则就显得你OUT了.如果再找一个可以跟大数据并驾齐驱的IT热词,JAVA无疑是跟大数据并驾齐驱的一个词语.很多人在提到大数据的时候总会想到JAVA,那么JAVA与大数据到底是什么关系. JAVA是什么 一提起JAVA,大家都不陌生,Java是一门高级的网络编程语言,对于我们现在所用的软件及APP都是后台java编写出来的,对于大数据来说java是一门基础的工具类语言,Java语言具有功能强大和简单易用两个特征.Java语言…
在Java与其他面向对象设计语言中,类之间常见的关系有6种 分别是:  依赖.关联.聚合.组合.继承.实现,他们的耦合度依次增强. 其中,关联.聚合.组合关系仅仅是在语义上有所区别,所谓语义就是指上下文环境.特定情境环境等,他们在编程语言中的体现却是基本相同的 耦合度  No.1 组合  >  No2. 聚合 > No3.关联 > No4.依赖 * 依赖(Dependence),即“uses-a”关系,是一种最明显的.最常见的关系.依赖关系表示一个类依赖于另一个类的定义,一个类的方法操纵…
安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用AccessController的checkPerssiom方法,访问控制器AccessController的栈检查机制又遍历整个PerssiomCollection来判断具体拥有什么权限一旦发现栈中一个权限不允许的时候抛出异常否则简单的返回,这个过程实际上比我的描述要复杂得多,这里我只是简单的一句带过,因为这里涉及到很多比较后面的知识点. 下面来尝试一下写一个非常简单…
类与类之间最常见的关系主要有三种:依赖(uses-a).聚合(has-a)和继承(is-a). 下面以在线书店订单系统为例,来详细的讲述这三种关系的概念. 在线书店订单系统的主要功能是:注册用户可以登录到网上书店选购图书,在线填写订单,并支付购书款.书店确认已经收到购书款时,按用户留下的地址邮寄图书.可以在这个系统中建立几个类,有图书(book).账户(account).订单(order).地址(address)等,如下图所示: 依赖(uses-a) 依赖关系是类中最常见的关系,例如订单类(or…
jvm:java虚拟机器(跨平台的关键) jre:java运行环境 jdk:java 开发工具包(kit) jdk>jre>jvm 环境变量配置 https://www.cnblogs.com/BillyYoung/p/10736984.html…
WinMain(hInst,hPrev,……) { MSG msg; RegisterClass(……); CreateWindow(……); ShowWindow(……); UpdateWindow(……); while(GetMessage(……)) { TranslateMessage(……); DispatchMessage(……); } return msg.wParam; } Window Procedure WndProc(hwnd,msg,wParam,lParam) { swi…
参考链接:https://blog.csdn.net/wq6ylg08/article/details/81092056…
一 jvm结构 jvm的内部结构如下图所示,这张图很清楚形象的描绘了整个JVM的内部结构,以及各个部分之间的交互和作用. 1 Class Loader(类加载器)就是将Class文件加载到内存,再说的详细一点就是,把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是类加载器的作用. 2 Run Data Area(运行时数据区) 就是我们常说的JVM管理的内存了,也是我们这里主要讨论的部分.运行数据区是整个JVM的重点.…
来源:美团技术团队 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约 600m,Linux自身使用大约800m. 从表面上,物理内存应该是足够使用的:但实际运行的情况是,会发生大量使用SWAP(说明物理内存不够使用 了),如下图所示.由于SWAP和GC同时发生会致使JVM严重卡顿,所以我们要追问:内存究竟去哪儿了? 要分析这个问题,理解JVM和操作系统之间的内存关系非常重要.接下来主要就Linux与JVM之间的…
   JDK.JRE.JVM之间的关系 1.JDK下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.JDK.JRE.JVM之间有什么关系? JDK.JRE.JVM之间是一种包含关系,范围是从大到小依次为 JDK>JRE>JVM,即JDK中包含JRE,JRE包含JVM. 3.两个JRE,都有什么作用? 第一个JRE安装路径:C:\Program Files\Java…
很多Java的程序员在写了很多代码之后,你问他JRE和JDK是是什么关系,JVM又是什么东西,他是不知道的. JVM(Java Virtual Machine) Java 虚拟机.它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作.所以说,JVM 是 Java 能够跨平台的核心. JRE (Java Runtime Environment) Java 运行时环境.它主要包含两个部分,JVM的标准实现和 Java 的…
自从计算机软件开发进入网络时代,就开始涉及到通讯问题.在客户/服务器(也叫C/S应用)时期,每个软件都有自己的客户端和服务器端软件.并且客户端和服务器端之间的通讯协议差别也很大.后来随着互联网的发展,基于浏览器/服务器的应用逐渐成为主流,通讯协议也统一到HTTP协议.但是,在HTTP协议之上,如何处理来自客户端的请求信息,以及如何对请求进行回应,则经历了很长时间也没有统一下来.目前,对于这个问题的解决方案主要有两种,一个是CGI,另一个是Servlet. CGI(Common Gateway I…
前言:作为一个转行java的小白,一直搞不清楚java中的多线程.于是来梳理一下关于CPU核心,线程,进程,并发,并行,及java线程之间的关系, 1.CPU角度来看: 我们以Intel的Core i5-8250U为例来举例,它是四核八线程的CPU , 我认为是一个CPU集成了4个核心,一般来说一个核心对应一个线程,Intel通过超线程技术来实现一个核心对应2个线程,所以它是四核8线程. 线程数:是同一时刻设备能并行执行的程序个数,这里说的线程是CPU级别的,不是java里的线程. 2.操作系统…
尝试着用Java编写一个网络聊天程序,发现总不如网上写的好,所以就直接引用了网上大神的优秀代码.代码如下: package project1; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; import java.util.ArrayList; import java.util.Iterator; import javax.swing.*; public class Server…
诠释一. JDK(java development kit) JDK是Java开发工具包,是整个Java的核心,包括了Java运行环境JRE.Java工具和Java基础类库. JRE(java runtime environment) JRE是Java的运行环境,包括JVM标准实现及Java核心类库. JVM(java virtual machine) JVM是java虚拟机,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序. 三者的关系 JDK=JRE+其他 JRE…
初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧: JDK(Java Development Kit)简单理解就是Java开发工具包,JRE(Java Runtime Enviroment)是Java的运行环境,JVM( java virtual machine)也就是常常听到Java虚拟机. JDK是面向开发者的,JRE是面向使用JAVA程序的用户, JDK(java development kit)JDK是Java开发工具包,是整个Java的核心,包括了Java运行…
本篇主要记录下,对GenericServlet的作用理解,及其与Servlet/HttpServlet之间的关系. 示例完成业务: 1.新建一个login.jsp页面,要求改页面能输入username,password,login.jsp提交页面,对应的处理servlet为LoginServlet: 2.在J2EE环境下,新建一个Dynamic Web Project工程,之后给该工程创建一个LoginServlet servlet类; 3.LoginServlet 完成业务为,获取全局初始化参…
最近总结了一下java中的paint,repaint和updata三者之间的关系,首先咱们都知道用paint方法来绘图,用repaint重绘,用update来写双缓冲.但是他们之间是怎么来调用的呢,咱们来分析一下(想直接看结果,请跳过分析过程): -----------------------------------------------------------------------------------------------------------------------------…
主内存和cpu之间的关系,因为cpu是在是处理速度太快了.所以一般cpu都有一个cpu缓存,上图的意思是主内存--->cpu缓存--->cpu寄存器--->cpu执行处理,写的时候反之. 看上图,就是多线程情况下java操作变量的大致步骤,需要注意的是,多线程操作的变量都是从主内存拿到的是变量的副本,然后进行一系列操作后,另赋值给主内存,所以,这种情况下就会导致多线程情况下数据不一致的问题.…
    设计模式<框架<架构<平台,从复用角度讲,设计模式是代码级复用.框架是模块级复用.架构是系统级复用.平台是企业应用级复用. 1.设计模式 为什么要先说设计模式?因为设计模式在这些概念中是最基本的,而且也比较简单.那么什么是设计模式呢?说的直白点,设计模式就是告诉你针对特定问题如何组织类.对象和接口之间的关系,是前人总结的经验.比如我要在代码中实现一个全局唯一的配置类,那么就使用Singleton模式.设计模式在实际编码工作和设计框架时会被使用到,而更高层的架构和平台则不会太关注它…
1,定义: JDK: Java Develpment Kit java 开发工具 bin:最主要的是编译器(javac.exe) include:java和JVM交互用的头文件 lib:类库 JRE: Java Runtime Environment java运行时环境 jre:java运行环境* JVM: java Virtual Machine java 虚拟机 三者之间的关系: 简单来说就是JDK包含JRE,JRE包含JVM的关系 Java基础:JDK.JRE.JVM的区别与联系 JVM就…
今天来简单而又详细地说说JavaScript和Java的关系. 开门见山总结性一句话,它们之间的关系 = 雷锋和雷峰塔之间的关系,换句话说:它们之间没什么关系. 但往往有不少初学者甚至中级者认为它们之间有密切的关系,这很让人无语. 个人认为如果不分辨清楚,Java学得越好的初学者,对于JavaScript就会学得越糟.因为在一张白纸上好画图,在一张花纸上就很难再画图了. 比较 JavaScript Java 诞生时间 1995年 1995年 曾用名 Mocha, LiveScript Oak 母…
StringBuilder.StringBuffer.String类之间的关系 java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,在上一篇博文中我们已经熟悉String字符串的特性和使用,而StringBuffer.StringBuilder又是怎么样的字符串类呢??他们之间的区别和关系又是什么呢??这问题经常在面试中会问到,现在总结一下,看看他们的不同与相同. 1.可变与不可变 1)String类中使用字符数组保存字符串,如下就是,因为有"…
java的类之间的关系:泛化.依赖.关联.实现.聚合.组合 泛化: • 泛化关系(Generalization)也就是继承关系,也称为"is-a-kind-of"关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类.在UML中,泛 化关系用带空心三角形的直线来表示. • 在代码实现时,使用面向对象的继承机制来实现泛化关系,如在Java语言中使用extends关键字.在C++/C#中使用冒号":"来实现. 泛化对应Java中继承关系,即子…
1.Lambda表达式与接口之间的关系 只要Lambda表达式的声明形式与接口相一致,在很多情况下都可以替换接口.见如下代码 Thread t1 = new Thread(new Runnable() { public void run() { System.out.println("hi"); } }); t1.start(); Thread t2 = new Thread(() -> System.out.println("hi")); t2.start(…