Java学习笔记(七)——面向对象(封装、继承、多态)
参考教程JDK8帮助文档
狂神说Java视频
封装程序设计要求:高内聚,低耦合
高内聚:类的内部数据操作细节自己完成,不允许外部干涉
低耦合:尽量暴露少量的方法给外部使用
封装(数据的隐藏):通常应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。
REMEMBER:属性私有,get/set
关键字:private
1234567891011121314151617181920212223242526272829303132333435public class Student { //属性私有,利用修饰符关键字private private String name; private int id; private char sex; private int age; //提供一些可以操作private属性的方法: //public的get&set方法 //get:获得属性数据 public String getName(){ return this.name; ...
Java学习笔记(六)——面向对象(基础部分)
参考教程JDK8帮助文档
狂神说Java视频
面向过程VS面向对象面向过程思想:
步骤清晰简单,第一步做什么,第二步做什么……
面对过程适合处理一些较为简单的问题
面向对象思想:
物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。
面向对象适合处理复杂的问题,适合处理需要多人协作的问题
对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。
面向对象概念面向对象编程(Object-Oriented Programming,OOP)本质:以类的方式组织代码,以对象的形式封装数据。
抽象:把对象的相似点抽取出来,组成一个类
三大特性:
封装
继承
多态
从认识论角度考虑:先有对象后有类。对象是具体的事物,类是对对象的抽象。
从代码运行角度考虑:先有类后有对象,类是对象的模板。
类与对象的关系
类是一种抽象的数据类型,它是对某一类事物整体描述定义,但是并不能代表某一个具体的事物。
对象是抽象概念的 ...
Java学习笔记(五)——数组
参考教程JDK8帮助文档
狂神说Java视频
数组概念
数组是相同类型数据的有序集合。
数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。
其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。
数组的声明123dataType[] arrayRefVar;//首选方法或dataType arrayRefVar[];//效果相同,不是首选
Java使用new来创建数组:
1dataType[] arrayRefVar = new dataType[arratSize];
获取数组长度:arrays.length
1234567891011121314151617181920212223242526public class Create { public static void main(String[] args) { //定义的通式:变量类型 变量名字 = 变量的值; //数组类型:基本类型[] int[] nums1;//定义 int nums2[];//C++风 ...
Java学习笔记(四)——方法
参考教程JDK8帮助文档
狂神说Java视频
方法的概念
Demo:
123456789101112public class Base { //main方法 public static void main(String[] args) { int sum = add(1,2);//实参在此 System.out.println(sum); } //加法 public static int add(int a, int b){//形参在此 return a+b; }}
与C中函数的区别:函数(function)是面向过程的叫法,方法(method)是面向对象的叫法。
方法定义123456修饰符 返回值类型 方法名(参数类型 参数名){ ... 方法体 ... return 返回值;}
修饰符:可选,告诉编译器如何调用该方法。定义了该方法的访问类型。
返回值类型:方法可能会返回值。returnValueTyp ...
Java学习笔记(三)——流程控制类语法
参考教程JDK8帮助文档
狂神说Java视频
Scanner对象通过java.util.Scanner类来获取用户的输入。基本语法:
1Scanner s = new Scanner(System.in);
获取输入的字符串:next()和nextLine()方法
判断是否还有输入的数据:hasNext()和hasNextLine()方法
1234567891011121314151617181920212223242526272829import java.util.Scanner;public class base { public static void main(String[] args) { //创建一个扫描器对象用于接收键盘数据 Scanner scanner = new Scanner(System.in); System.out.println("使用next方式接收:"); //判断用户有没有输入字符串 if (scanner.hasNext())& ...
Java学习笔记(二)——入门基础语法
参考教程JDK8帮助文档
狂神说Java视频
JDK、JRE、JVM
HelloWorld、注释、标识符12345678910111213public class HelloWorld {//类 public static void main(String[] args) {//方法 //单行注释 System.out.println("Hello"); /* 多行注释 */ String $hello="World";//变量 String _hello="World";//标识符大小写敏感 }}
所有的关键字
数据类型类型
12345678910111213141516171819public class type { public static void main(String[] args) { //八大基本数据类型 ...
大数据学习笔记——Shell入门
参考教程B站视频:尚硅谷Shell教程(shell自动化编程精讲)
Shell概述
Shell解析器
Linux提供的Shell解析器
1234567[cuper@iZe4h75o51zvd0Z ~]$ cat /etc/shells/bin/sh #重要/bin/bash #重要/sbin/nologin/bin/dash/bin/tcsh/bin/csh
bash和sh的关系
123[cuper@iZe4h75o51zvd0Z bin]$ ll | grep bash-rwxr-xr-x 1 root root 1219248 Nov 9 2019 bashlrwxrwxrwx 1 root root 4 Nov 9 2019 sh -> bash
sh为bash的软链接,功能一样。
CentOS默认的解析器
12[cuper@iZe4h75o51zvd0Z bin]$ echo $SHELL/bin/bash
Shell脚本入门脚本格式脚本以#!/bin/bash开头:指定解析器
Shell脚本注释即以”#“开头。
...
大数据学习笔记——Linux相关操作
参考教程B站视频:尚硅谷大数据Linux教程(大数据linux开发)
视频评论区的学习笔记
Linux的文件目录结构在Linux的世界里,一切皆文件。
/bin (/usr/bin 、/usr/local/bin):是Binary的缩写,这个目录存放着最经常使用的命令。
/sbin (/usr/sbin 、/usr/local/sbin):s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/home :存放普通用户的主目录, 在linux中每个用户都有一一个自己的目录,一般该目录名是以用户的账号命名的。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
/lib:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/etc:所有的系统管理所需要的配置文件和子目录my.conf。
/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于wind ...
Leetcode刷题——IP地址与整数的转换
题目描述参照:整数与IP地址间的转换__牛客网
IP地址转整数法一注:Java中需要Long型,int会溢出
123456789101112131415161718import java.util.Scanner;public class ipInt { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String strIp = sc.nextLine(); String[] ipArr = strIp.split("\\."); Long n = Long.parseLong(ipArr[0]); for (int i = 1; i < 4; i++) { n = n << 8; // 位运算将每一位往左移8 n += Long.parseLong(ipArr[i]); ...
《大数据技术原理与应用》学习笔记——Ch4:分布式数据库HBase
Intro本文为《大数据技术原理与应用》第四章学习笔记。
HBase安装和编程实践指南
HBase简介HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是BigTable的一个开源实现,主要用来存储非结构化和半结构化的松散数据。
HBase和BigTable的底层技术对应关系:
BigTable
HBase
文件存储系统
GFS
HDFS
海量数据处理
MapReduce
Hadoop MapReduce
协同服务管理
Chubby
Zookeeper
在已有Hadoop和HDFS的情况下为什么需要HBase:
Hadoop无法满足大规模数据实时处理应用的需求
HDFS面向批量访问模式,不是随机访问模式
传统的通用关系型数据库无法应对在数据规模剧增时导致的系统扩展性和性能问题(分库分表也不能很好解决)
传统关系数据库在数据结构变化时一般需要停机维护
空列浪费存储空间
HBase与传统关系数据库的对比分析
HBase
关系型数据库
数据类型
采用了更加简单的数据模型,它把数据存储为未经解释的字符串
采用关系模型,具有丰富的数据类型和存储 ...