C++前向声明 当用到前向声明的时候 不能实例化对象,只能定义使用指针或者引用。嵌套类:在类中在定义的类,嵌套类的方法体可以在类外去定义使用。局部类:在方法中定义的类,使用范围在方法内,其他域无法识别。当两个类相互包含造成循环调用的场景就需要使用到前向声明。
C++基础之类 当我们实例化对象的时候,那么这个实例化的对象就好像有了一个身份一样:年龄23 性别男 姓名xxx的那么一位人。People类表示抽象的人,我们可以认为每个人都可以被这个类所概括,类是对象的抽象,类是抽象的,对象是实体的。比如说一个people类。
HDFS组成架构 hdfs是一种分布式文件系统HDFS的组成及作用HDFS主要由四部分组成:Client、NameNode、Secondary NameNode 、DataNode图片来源于官网1)client: 表示客户端功能1:进行文件的切分,当文件上传HDFS的时候,Client将文件切分成一个一个的block,然后进行上传。功能2:与NameNode进行交互,比如说当要下载一个内容的时候,client就需要从NameNode来获取到需要得到文件再DataNode当中的一个具体位置功能3:与DataNo
Hadoop安装 headoop运行环境的搭建先创建一个模板机hadoop1000)安装模板虚拟机,IP地址192.168.10.100、主机名称hadoop100、内存4G、硬盘50G1)关闭防火墙,关闭防火墙开机自启[root@hadoop100 ~]# systemctl stop firewalld[root@hadoop100 ~]# systemctl disable firewalld.service2)在/opt目录下创建文件夹,并修改所属主和所属组在/opt目录下创建module、softw
Hadoop概述 Hadoop的组成Hadoop是一种大数据框架,目前有三个版本,在3.x版本当中Hadoop大致是由MapReduce、Yarn、HDFS、Common等几大块而组成的。其中三个大版本的差别如下图所示:(图片来源于网络)下面来对Hadoop的几大板块进行介绍:HDFSHDFS是指Hadoop Distributed File System的缩写,指的是分布式文件系统,HDFS主要有三个重要组成部分:NameNode(nn)、DataNode(dn)、Secondary NameNode(2n)。
ABA问题的解决 什么是ABA问题?ABA问题是发生在CAS过程当中的下面以一个例子来表示:假如有两个线程A,B,两个线程都从主内存中获取了某个对象的值为value1,当进行CAS的时候A首先把value1更换成了value2。因为线程B可能没有CPU资源调度导致行动缓慢,这个时候A又再次的将value2变量改变回了value1。当B线程有CPU执行权的时候进行CAS的时候,原来自己获得的是value1主内存里面的还是value1就进行更新自己要更新的值。但是value1已经被A线程修改过,虽然可以修改成功,但这个违背
Java CAS概述 CAS是什么?CAS表示比较并交换,它是一条cpu并发原语指令。我们在多线程开发环境当中不免会使用到AtomicInteger类来保证多线程安全性例如: AtomicInteger atomicInteger = new AtomicInteger(3); atomicInteger.getAndIncrement();点进去getAndIncrement()方法里面会有public final int getAndIncrement() { //valueOffset是内存偏移
双端检索实现单例模式 详情请看代码public class SingletonDemo { private static volatile SingletonDemo instance = null; public SingletonDemo(){ System.out.println(Thread.currentThread().getName() +"我是构造方法SingletonDemo()"); } public static SingletonDemo getInstan
volatile的三大特性:可见性、非原子性、禁止指令重排 以下代码验证volatile的可见性可不保证原子性可见性解释:当自己创建的线程还没有修改num值时,一直在while里面循环,当5秒休眠完成后修改成功,因为可见性,主线程知道已经num修改完毕跳出while循环不保证原子性解释如果是保证原子性的那么num将会变成20000,实际上会num会比20000少,因为n++的时候被其他的线程打断了,若要保证原子性可以使用AtomicInteger代替。详情请看代码表示class Number{ volatile int num = 0;
leetCode-02 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。/* class ListNode { int val; ListNode next; ListNode() {} ListNode(int val) { this.val = val; } ListNode(int
leetCode每日一题 两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。//方法一、(暴力法) int[] twoSum(int[] nums, int target) { int nLength = nums.length; for(int i = 0 ; i<nLength ; i++){
SSM的整合 SSM的整合1.先创建数据库2.导入JAR包3.创建包4.创建实体类5.编写dao层6.编写service层7.编写mybatis-config.xml8.spring整合mybatis9.spring整合service层10.编写spring-mvc.xml文件11.Spring配置整合12.编写web.xml14.编写controller与视图层15.运行结果总结1.先创建数据库数据自行插入2.导入JAR包这里是用jar包,也可以用maven导包那样更方便注意out目录下也到导包不然整
Spring 学习日记 Java Spring 框架学习日记1新的征程新的征程新的一学期就到了,这个学期需要学习三个框架,ssm : Spring + Spring MVC +MyBatis第一堂Spring课下来,我感觉框架就是通过另一种方式来简化编程的。第一堂课学了控制反转,学了一节课,懵懵懂懂,以我的理解就是如果你要干一件活,你可以自己干,或者你可以叫第三方来干,来达到同样的效果然后就学到了Spring IOC容器IOC容器可以通过两个接口来实现控制反转BeanFactory//加载配置文件的时候不会去创建
五子棋 java 五子棋小游戏需求游戏设置优先出棋子、游戏说明、重新开始、悔棋、认输、退出、关于。图像界面如下源码package keshe;import java.util.*;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Toolkit;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;i
猜拳 Java 猜拳小游戏需求与电脑对战,选择要对战的电脑角色。自己用数字模拟出拳。输出对战场次以及胜负比分。源码类Testpublic class Test { public static void main(String[] args) { GuessFist g =new GuessFist(); g.start(); }}类Personimport java.util.Scanner;public class Person { String name; int
欢乐抽奖 Java 小程序之欢乐抽奖需求:注册:注册账号、密码生成一个四位数的数字作为账号。登录:输入账号密码,一共有3次机会 。抽奖:生成5个数字,如果五位数字当中有一个数字与账号相同则为中奖。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片拖拽 功能,你可以将本地的图片直接拖
Java @Override的作用 @Overridejava中的@Override其实是子类继承父类后,子类对父类的方法进行重写后的一个标记,如果子类的重写的方法在父类中不存在,则在编译时会报错。下面举个例子class People{people(){ } int age ; String sex; void speak(){ System.out.println("I am a %S",sex); }}class Student extends People {String name;@Override
Java final关键字 final关键字final 关键字可以修饰类,成员变量 ,局部变量。一、final类final类可以理解为一个不变的类。它不可以被继承final class A{.........}二、final方法如果父类中有被final修饰的方法,则该方法可以理解为不变的方法:不可被子类重写(也可以说不允许子类隐藏父类的final方法)。三、常量如果成员变量或局部变量被final修饰,则说明修饰过的称之为常量,所以在声明时必须;给定初始值。例如: final double PI = 3.1415
java super关键字 super关键字1.Java语言中 super主要有两个作用:一、用super调用被子类隐藏的成员变量或者方法子类一旦隐藏了继承类的成员变量,那么子类创建的对象就不再拥有继承的改变量,改变量就会归为关键字super所有。 调用例如 super.x 、 super.play() 。 (x 为父类的成员变量,play() 为父类的成员函数)。二、 用super调用父类的构造函数。下面举个例子:class A { int s1 , s2; A(int a1, int a2){