- 博客(31)
- 收藏
- 关注
原创 C++前向声明
当用到前向声明的时候 不能实例化对象,只能定义使用指针或者引用。嵌套类:在类中在定义的类,嵌套类的方法体可以在类外去定义使用。局部类:在方法中定义的类,使用范围在方法内,其他域无法识别。当两个类相互包含造成循环调用的场景就需要使用到前向声明。
2023-02-26 10:26:12 145
原创 C++基础之类
当我们实例化对象的时候,那么这个实例化的对象就好像有了一个身份一样:年龄23 性别男 姓名xxx的那么一位人。People类表示抽象的人,我们可以认为每个人都可以被这个类所概括,类是对象的抽象,类是抽象的,对象是实体的。比如说一个people类。
2023-02-23 23:04:42 118
原创 HDFS组成架构
hdfs是一种分布式文件系统HDFS的组成及作用HDFS主要由四部分组成:Client、NameNode、Secondary NameNode 、DataNode图片来源于官网1)client: 表示客户端功能1:进行文件的切分,当文件上传HDFS的时候,Client将文件切分成一个一个的block,然后进行上传。功能2:与NameNode进行交互,比如说当要下载一个内容的时候,client就需要从NameNode来获取到需要得到文件再DataNode当中的一个具体位置功能3:与DataNo
2022-05-15 23:09:29 1192
原创 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
2022-05-12 20:47:32 978
原创 Hadoop概述
Hadoop的组成Hadoop是一种大数据框架,目前有三个版本,在3.x版本当中Hadoop大致是由MapReduce、Yarn、HDFS、Common等几大块而组成的。其中三个大版本的差别如下图所示:(图片来源于网络)下面来对Hadoop的几大板块进行介绍:HDFSHDFS是指Hadoop Distributed File System的缩写,指的是分布式文件系统,HDFS主要有三个重要组成部分:NameNode(nn)、DataNode(dn)、Secondary NameNode(2n)。
2022-05-10 21:36:48 450
原创 ABA问题的解决
什么是ABA问题?ABA问题是发生在CAS过程当中的下面以一个例子来表示:假如有两个线程A,B,两个线程都从主内存中获取了某个对象的值为value1,当进行CAS的时候A首先把value1更换成了value2。因为线程B可能没有CPU资源调度导致行动缓慢,这个时候A又再次的将value2变量改变回了value1。当B线程有CPU执行权的时候进行CAS的时候,原来自己获得的是value1主内存里面的还是value1就进行更新自己要更新的值。但是value1已经被A线程修改过,虽然可以修改成功,但这个违背
2022-04-14 21:56:19 2800
原创 Java CAS概述
CAS是什么?CAS表示比较并交换,它是一条cpu并发原语指令。我们在多线程开发环境当中不免会使用到AtomicInteger类来保证多线程安全性例如: AtomicInteger atomicInteger = new AtomicInteger(3); atomicInteger.getAndIncrement();点进去getAndIncrement()方法里面会有public final int getAndIncrement() { //valueOffset是内存偏移
2022-04-14 16:21:02 124
原创 双端检索实现单例模式
详情请看代码public class SingletonDemo { private static volatile SingletonDemo instance = null; public SingletonDemo(){ System.out.println(Thread.currentThread().getName() +"我是构造方法SingletonDemo()"); } public static SingletonDemo getInstan
2022-04-13 16:30:55 387
原创 volatile的三大特性:可见性、非原子性、禁止指令重排
以下代码验证volatile的可见性可不保证原子性可见性解释:当自己创建的线程还没有修改num值时,一直在while里面循环,当5秒休眠完成后修改成功,因为可见性,主线程知道已经num修改完毕跳出while循环不保证原子性解释如果是保证原子性的那么num将会变成20000,实际上会num会比20000少,因为n++的时候被其他的线程打断了,若要保证原子性可以使用AtomicInteger代替。详情请看代码表示class Number{ volatile int num = 0;
2022-04-13 15:54:11 430
原创 leetCode-02
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。/* class ListNode { int val; ListNode next; ListNode() {} ListNode(int val) { this.val = val; } ListNode(int
2022-02-28 22:20:10 265
原创 leetCode每日一题
两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。//方法一、(暴力法) int[] twoSum(int[] nums, int target) { int nLength = nums.length; for(int i = 0 ; i<nLength ; i++){
2022-02-28 20:17:03 64
原创 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目录下也到导包不然整
2021-05-13 17:26:49 137
原创 Spring 学习日记
Java Spring 框架学习日记1新的征程新的征程新的一学期就到了,这个学期需要学习三个框架,ssm : Spring + Spring MVC +MyBatis第一堂Spring课下来,我感觉框架就是通过另一种方式来简化编程的。第一堂课学了控制反转,学了一节课,懵懵懂懂,以我的理解就是如果你要干一件活,你可以自己干,或者你可以叫第三方来干,来达到同样的效果然后就学到了Spring IOC容器IOC容器可以通过两个接口来实现控制反转BeanFactory//加载配置文件的时候不会去创建
2021-03-25 22:23:41 193
原创 五子棋 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
2020-12-09 20:47:15 407 1
原创 猜拳 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
2020-12-09 20:18:49 162
原创 欢乐抽奖 Java
小程序之欢乐抽奖需求:注册:注册账号、密码生成一个四位数的数字作为账号。登录:输入账号密码,一共有3次机会 。抽奖:生成5个数字,如果五位数字当中有一个数字与账号相同则为中奖。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片拖拽 功能,你可以将本地的图片直接拖
2020-12-09 20:10:02 155
原创 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
2020-10-24 09:48:36 826
原创 Java final关键字
final关键字final 关键字可以修饰类,成员变量 ,局部变量。一、final类final类可以理解为一个不变的类。它不可以被继承final class A{.........}二、final方法如果父类中有被final修饰的方法,则该方法可以理解为不变的方法:不可被子类重写(也可以说不允许子类隐藏父类的final方法)。三、常量如果成员变量或局部变量被final修饰,则说明修饰过的称之为常量,所以在声明时必须;给定初始值。例如: final double PI = 3.1415
2020-09-21 20:33:51 70
原创 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){
2020-09-21 20:20:54 74
原创 Java匿名类
匿名类匿名类( anonymous class)是一种特殊的内部类1.它没有类名,在定义类的同时就生成该对象的一个实例2.“一次性使用”的类匿名类的使用1.不取名字,直接用其父类或接口的名字。也就是说,该类是父类的子类,或者实现了一个接口编译器生成 xxxxx$1之类的名字2.匿名类的定义的同时就创建实例,即类的定义前面有一个 new格式为: new 类名或接口名(){……}不使用关键词class,也不使用extends及implements。3. 在构造对象时使用父类构造方法不
2020-08-03 10:58:12 529
原创 Java局部类
局部类与内部类不同,局部类指的是在一个类里面的方法里面再定义的类叫局部类下面煮个栗子class People{ private int age = 12; public String N() { class Student //Student类为局部类 { } }}...
2020-08-02 21:45:52 694
原创 Java动态类型的确定
Java动态类型的确定可以使用 instanceof 来判断 结果是一个布尔(boolean)类型class test{ int a = 555; boolean res ; res = a instanceof int System.out.println(res);}
2020-08-02 11:02:43 431
原创 Java 虚方法实例
变量实际引用的是子类对象,而子类对象中覆盖(也可以说成是重写)了父类的方法,这时父类对象调用的是子类中的方法,这时候就成为虚方法调用下面一个小栗子class TestVirtualInvoke{ static void doStuff(Shape s ) { s.draw(); } public static void main( ) { Circle c = new Circle(); Triangle t = new Triangle(); c.d
2020-08-02 10:41:49 223
原创 Java 内部类
内部类内部类通俗的讲就是在一个类中嵌套的另一个类,但是不能和外部类同名内部类的定义1.将类的定义class xxxx{…}置入一个类的内部即可2.编译器生成xxxx$xxxx这样的class文件3.内部类不能够与外部类同名内部类的使用1.在封装它的类的内部使用内部类,与普通类的使用方式相同2.在其他地方使用•类名前要冠以外部类的名字。•在用new创建内部类实例时,也要在 new前面冠以对象变量。外部对象名.new 内部类名(参数)下面写一个实例class TestInnerclas
2020-08-01 22:01:51 373
原创 java字段变量与局部变量
java字段变量与局部变量字段变量是在类中,局部变量指的是类的成员函数里面的变量或 方法的参变量。他们有以下特点一、从语法角度看1.字段变量属于类,可以用public,private,static,final 修饰。2.局部变量不能够被访问控制符及static修饰3.都可以被final修饰二、从内存角度看1.存储位置,字段变量为对象的一部分、存在于堆中的,局部 变量是存在于栈中。2.生命周期不同3.初始值:字段变量可以自动赋初值,局部变量则须显式赋值class Test(){
2020-07-31 21:48:01 1326
原创 Java构造方法的执行过程
构造方法的执行过程遵照以下步骤:1.调用本类或父类的构造方法,直至最高一层(Object)2.按照声明顺序执行字段的初始化赋值3.执行构造函数中的各语句简单地说:先父类构造,再本类成员赋值,最后执行构造方法中的语句。...
2020-07-31 21:37:07 637
原创 java语言 类的继承的实例
Java 语言里面的继承先定义一个类(People),然后再定义一个类(Student),然后用第二个类(Student)用extends继承第一个类(People)。代码如下:class People{ People ( String n , int a) { name = n; age = a; } String name; int age; void SayHello() { System.out.println("hello!! my name is " + n
2020-07-22 22:30:26 853
原创 使用Java语言编写求一段整数的质数的程序
要编写该程序 首先需要弄清楚什么是质数 (大于2且只能被1和自身整除)public class ZhiShu { public static void main(String ards[]) { system.out.println("输出101到200的质数") out: for(int i=101;i<=200;i++) { for (int j =2 ; j<i;j++ ) { if(i%j==0
2020-07-20 20:30:56 366
原创 java中 print printf println 的相同点与区别
Java 里面print表示输出一行 println实际上就是print加换行printf 与C语言里面的printf差不多 当我们输出带有格式的时候就使用printf 例如( %d %x )还有 类似其他等等。
2020-07-20 20:01:55 208
原创 如何使用Java判断一个年份是不是闰年
怎么使用Java语言判断一个年份是不是闰年先需要搞清楚判断闰年的算法是什么,能被4整除但是不能被100整除代码如下public class leapyear { public static void main(String ards[]) { int year = 2003; if ( (year %4 == 0 && year%100 != 0) || year % 400 ==0) { System.out .print
2020-07-17 22:17:03 1821
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人