`
文章列表
  public class InsertSort { //插入排序 //基本思想: //在要排序的一组数中,假定前n-1个数已经排好序, //现在将第n个数插到前面的有序数列中,使得这n个数也是排好序的。 //如此反复循环,直到全部排好序。 过程:    //平均时间复杂度:O(n^2) public static void main(String[] args) { int[] arr = new int[]{6,2,4,1,9,3,6,7,0}; System.out.println("排序前====="); print(arr); Sy ...
  public class SelectionSort { //选择排序 //基本思想:   //在长度为N的无序数组中,第一次遍历n-1个数,找到最小的数值与第一个元素交换 //第二次遍历n-2个数,找到最小的数值与第二个元素交换, //... //第n-1次遍历,找到最小的数值与第n-1个元素交换,排序完成。   //平均时间复杂度为:O(n^2) public static void main(String[] args) { int[] arr = new int[]{6,2,4,1,9,3,6,7,0}; System.out.println(" ...
  public class BubbleSort { //冒泡排序 //基本思想:两个数比较大小,较大的数下沉,较小的数冒起来 //过程:1.比较相邻的两个数,如果第二个数小就交换位置 //2.从后向前两两比较,一直到比较最前面的两个数据。最终最小数被交换到起始的位置, //这样第一个最小数的位置就排好了 //继续重复上述过程,依次将第2,3,...n-1个最小数排好位置 //平均时间复杂度为:O(n^2) public static void main(String[] args) { int[] arr = new int[]{6,2,4,1,9,3,6,7,0}; ...

在java中使用协程

    博客分类:
  • java
  1. 背景知识 现在的操作系统都是支持多任务的,多任务可通过多进程或多线程的方式去实现,进程和线程的对比就不在这里说了,在多任务的调度上操作系统采取抢占式和协作式两种方式,抢占式是指操作系统给每个任务 ...
MongoDB的一些操作: 创建数据库: use test 注意此时数据库并没有创建,只是在mongo的预处理缓存中存在,只有为mongo加入相应的list,才真正创建。如果什么都不干就离开的话,这个空数据库就会被删除。   show dbs  查看所有的集合 show collections    查看集合中所有的文档 db.help()   查看帮助 db.students.help()   查看集合的帮助 db.system.indexes.find()   查看索引 db.students.drop()   删除文档中的数据   插入数据: db.[docu ...
MongoDB中存储的文档必须要有一个_id键,这个键的值可以是任何类型的,默认为ObjectId。 在每个文档里面,_id值是唯一的,这样可以确保在一个集合里每个文档可以被唯一标识。如果是两个集合的话,在不同的集合里文档的_id是可以相同的。   MongoDB为什么要使用ObjectId,而不使用自动增加的主键等其他的常规的方式? MongoDB从一开始就设计用来做分布式数据库,处理多个节点是核心的要求。ObjectId被设计成轻量型的,不同的机器都能够用全局的唯一的方法生成ObjectId。   ObjectId采用12个字节的存储空间,每个字节2位16进制的数字,组成一个2 ...

事务相关的知识

事务的特性: 原子性:事务是不可分割的最小单元,事务里的操作要么都做要么都不做 隔离性:在并发程序中,并发事务之间互不影响,在对一个事务的操作不会对其他事务产生影响,事务的隔离性需要事务的隔离级别来完成。 一致性:在事务执行前后数据库的数据都处于正确的状态, 持久性:事务一旦执行成功,那么对数据库数据的改变是永久的,不会因为因为断点或者系统故障而发生数据丢失。   在实际项目开发中,事务一般都是并发执行的,事务并发执行一般会遇到以下问题: 丢失更新:两个事务先后更新同一行数据,后执行的事务的更新覆盖掉了前一个事务的更新,这样会导致前一个事务更新的数据丢失,这是由于没有加锁造成的 ...

MongoDB学习总结

   MongoDB是一种nosql数据库,其与关系型数据库有很大的不同    关系型数据库中的表在MongoDB中被称为集合,关系型数据库中每行记录在MongoDB中被称为文档,关系型数据库中的表的字段在MongoDB中被称为key。MongoDB中没有主外建的概念。 基本概念: 1.文档    文档是MongoDB的最基本的单元,也是MongoDB的核心概念。    文档的键值对是有序的、区分大小写的、不能重复的,而且键应该是字符串。文档中对键的要求:    键不能含有\0(空字符),这个字符用来表示键的结尾。    .和$是有特殊意义的字符。    以下划线开头的键是保 ...

git常见命令

    博客分类:
  • Git
git的配置 git config --global user.name "xxx@xx.com" git config --global user.email "xxx@xx.com"   从github上克隆git项目 git clone git@xx.xx.xx.xx:yuluoqianmu/test.git cd test   添加README.md文件并推到github上 touch README.md git add README.md git commit -m "add README" git ...

CurrentHashMap原理

    博客分类:
  • java
 
ConcurrentHashMap内部数据结构是hashTable,但是与hashTable不同的是CurrentHashMap使用了锁分离技术,即:使用多个不同的锁来控制对HashTable的不同部分进行修改,其内部的不同部分使用Segment来表示。这样一个大的HashTable就会被分为多个小的HahTable,每个锁作用在不同的小HashTable上。当多个操作发生在不同的Segment上,就可以进行并发操作了。 但是有些操作例如:size(),需要将整个表锁定,先按顺序锁定每个段的,然后进行操作,操作完后再按顺序释放所有段的锁。 ConcurrentHashMap实际上就是将一个 ...
$0 这个程式的执行名字 $n 这个程式的第n个参数值,n=1..9 $* 这个程式的所有参数,此选项参数可超过9个。 $# 这个程式的参数个数 $$ 这个程式的PID(脚本运行的当前进程ID号) $! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号) $? 执
gpfs集群配置:   集群搭建的准备:为了方便我们进行操作,首先设置ssh免密码登录。   在192.168.1.17机器上连接192.168.1.140机器:   ssh-kengen   scp .ssh/id_rsa.pub root@192.168.1.140:/home/id_rsa.pub   cat /home/id_ rsa.pub >> ~.ssh/authorized_keys   chmod 700 .ssh   chmod 600 authorized_keys   ssh 192.168.1.140   192.168 ...
安装gpfs,需要先安装的软件:   kshell   gcc   g++   kernel-devel   rpm-build       首先检查软件是否安装:   which ksh、   which gcc或者gcc -v、   which g++或者 g++ --version、   rpm -q kernel-devel、   which rpmbuild       安装以上软件可以使用rpm方式和yum方式安装,rpm方式比较麻烦,我装了很长时间,这里推荐使用yum安装。由于我们使用的是RedHat6.5的系统,需要先修改 ...
假设HDFS客户端为node11,用户A想要将文件apache.log写到HDFS上,该文件大小为100MB,假设用户配置的文件block大小为64MB,请结合你的理解,描述该文件写入HDFS的整个流程(请用步骤1,步骤2,……,描述) 使用HDFS提供的客户端(client),向远程的namenode发起RPC请求; namenode会检查要创建的文件apache.log是否已经存在,创建者是否有权限进行操作,成功则会为文件创建一个记录,否则会让客户端抛出异常; 默认block大小为64MB,因此100MB被切分为两个block,客户端会依次写入每个block,c ...
Global site tag (gtag.js) - Google Analytics