仓库的代码推送与拉取
-
查看配置
git config --list
-
全局配置
git config --global user.email "邮箱" git config --global user.name "用户名"
-
局部配置
git config --local user.email "邮箱" git config --local user.name "用户名"
注意: 局部配置仅针对当前的仓库有效。
-
查看状态
git status
方法一:将远程仓库克隆到本地,修改后再push到 Gitee 的远程仓库
-
将远程仓库克隆到本地
git clone git@gitee.com:username/仓库的命名.git
-
配置本地的git信息,执行config命令配置
git config --global user.name "你的名字或昵称" git config --global user.email "你的邮箱"
-
克隆过程中如果仓库是私有的,将会要求用户输入gitee账号与密码。
git add . #将当前目录所有文件添加到git暂存区 git commit -m "注释" #提交并备注提交信息 git push origin master #将本地提交推送到远程仓库
方法二:初始化一个本地的仓库,设置远程仓库地址后再做push
mkdir [新建文件] git init #创建本地的仓库 git remote add origin git@gitee.com:username/仓库的命名.git #绑定到新建的仓库
git pull origin master #获取远程仓库与本地仓库合并
-
修改文件,与原文件相互区别。
git add . git commit -m "提交修改" git push origin master
-
如果需要账号密码的话就输入账号和密码。
git pull origin master #执行强制推送之前运行保留被舍弃的线上文件
git push origin master -f #强制推到远程仓库
上传本地仓库
git remote -v #查看远程库信息 git remote rm origin #删除关联的origin的远程库
- git命令
git init #把当前目录变成git可以管理的仓库
git clone git地址 #克隆项目
git add readme.txt #添加一个文件,也可以添加文件夹
git add -A #添加全部文件
git rm test.txt #删除一个文件,也可以删除文件夹
git commit -a -m “some commit” #提交修改
git status #查看是否还有未提交
git log #查看最近日志
git reset --hard HEAD^ #版本回退一个版本
git reset --hard HEAD^^ #版本回退两个版本
git reset --hard HEAD~100 #版本回退多个版本
git remote add origin +地址 #远程仓库的提交(第一次链接)
git push -u origin master#仓库关联
git push #远程仓库的提交(第二次及之后)
git fetch #从远程获取代码库
git tag xxx #打tag
git tag #显示所有tag
git push --tag #提交tag
git branch -a #显示所有分支
git checkout 分支名 #切换分支
git merge git分支 #合并分支
一、基础的数据类型
C,C++,JAVA中定义变量时必须明确定义类型
一旦确定了类型,其取值必须符合该类型
变量三要素: 类型、名称、值
基本数据类型 与 引用类型 的区别
引用类型所对应的变量指向值本身的地址(地址也是值)
基本类型的变量储存的是值本身
-
byte:
占一个字节,8个二进制位(bit)
-
short
占两个字节,16个二进制位(bit)
-
int
占四个字节,32个二进制位(bit)
-
long
占八个字节,64个二进制位(bit)
-
浮点数都遵循IEEE 754规范
-
float
占四个字节,32个二进制位(bit),float类型的字面量必须以F或f作为后缀
-
double
占八个字节,64个二进制位(bit),可以以D或d作为后缀
-
char
占两个字节,16个二进制位(bit),uncoide编码表中的每个字符都要使用单引号引起来
以单个字符为字面量 (在单引号中指定单个字符)
以整数为字面量 (整数范围是 0 ~ 65535 )
以转义字符为字面量 (在单引号中指定转义字符)
以Unicode编码为字面量 (在单引号中指定Unicode编码)
-
boolean
占一个字节,8个二进制位(bit)
二、数据类型的转换
将数值范围小的数据类型的值赋值给数值范围大的数据类型的变量
整数类型的强制类型转换: 舍弃高位,保留低位
浮点类型的强制类型转换
浮点类型强转为整数类型
目标类型 变量名 = (目标类型) 值
舍弃小数点部分后再舍弃整数的高位保留低位
三、运算符
算数运算符
加(+) 减(-) 乘(*) 除(/) 模(%)
对于仅有整数参与的出发运算符来说,除数不能为零
进行运算时先将数据类型提升,再执行运算
有浮点数参与的除法运算来说,除数可以为零,结果无穷大。
例:double y = 5.2%2.5 结果取余数
double y= 5.2/2.5 结果取整数
赋值运算符
=:从右到左赋值,将右边的值赋给左边
按位运算符
按位与(|) 按位或(&) 向左移位(<<)
向右移位(>>)
例:0b1000_1111_1010_0011
0b0010_0011_1110_1000
无符号向右移位(>>>)
按位异或(^)
例:0b0010_0011_1110_1000
0b1000_1111_1010_0011
0b1010_1100_0100_1011
按位取反(~)
例:0b0010_0011_1110_1000
0b1101_1100_0001_0111
取反的最高位为0是正数,最高位是1为负数
+= -= *= /= %= |= &= ^=
(>>=) (<<=) (<<<=)
原码 :最高位是符号位,0代表正数,1代表负数,非符号位为该数字绝对值的二进制。
反码:正数的反码与原码一致,负数的反码是对原码按位取反,只是最高位(符号位)不变。
补码:正数的补码与原码一致,负数的补码是对原码按位取反加1,符号位不变。
例:十进制数字:5
5=2^2+2^0 101 至少要三位数字 加上符号位 就是4位数字
原码:0101
反码:0101
补码:0101
一、自增自减运算符
前++ 先执行自增操作再使用(新值)
后++ 先使用(原值)再执行自增操作
前-- 先执行自减操作再使用(新值)
后-- 先使用(原值)再执行自减操作
基本数据类型的数值中除了Boolean外都可以比较
任意类型的数值都可以比较相等或者不相等
< > >= <= == !=
== 比较两个值是否相等
-
逻辑运算符
||逻辑或 && 逻辑与 !逻辑取反
对于表达式expression exp1 ||exp2来说,当exp1 或exp2至少一个为true时结果为true
对于表达式expression exp1 &&exp2来说,当exp1 与exp2都为true时结果才为true
-
比较&&与&的区别(&&短路与 ;&非短路与;操作逻辑值时)
对于表达式expression exp1 && exp2来说,当exp1 为false时,不必执行exp2
对于表达式expression exp1 & exp2来说,即使exp1 为false,依然执行exp2
比较||与|的区别(||短路或 ;|非短路与;操作逻辑值时)
对于表达式expression exp1 ||exp2来说,当exp1为true时,就不再执行exp2
对于表达式expression exp1 | exp2来说,即使exp1为true,依然执行exp2
二、结构
-
顺序结构
从上往下按顺序执行,每句必走。
-
分支结构
有条件的执行某行语句,并非每条必走。先判断后执行,判断一次执行一次,程序可以在运行过程中,根据不同的条件执行不同的语句
if else语句
if(判断条件1){ 执行语句1; }else if(判断条件2){ 执行语句2; }else if(判断条件3){ 执行语句3; }。。。。。{执行语句N; }else{以上条件都不满足时执行的语句; }
switch case语句
优点:效率高,结构清晰 缺点:整数,相等 switch case 语句是一种特殊的分支结构,可以根据一个整数表达式的不同取值从不同的程序入口开始执行。 switch(整型表达式){ 语句1; 语句2; case 整型常量值2 : 语句3; 语句4; 。。。。 default: 语句N; }
-
循环结构
循环是程序设计语言中反复执行某些代码的一种计算机处理过程,是一组相同或相似语句被有规律的重复性执行。
while结构: 执行逻辑:计算Boolean表达式的值,如果值为true则执行语句块,语句块执行完后再次判断boolean表达式的值。 如果为true则继续执行语句块;如此往复,直到booleanw为false时退出while循环。 一般情况下 while(Boolean){ 语句块 } System.out.println("over"); do...while结构: 先执行语句块; 再计算boolean表达式的值,如果为true,再次执行语句块,如此循环往复,直到boolean表达式的值为false为止。 先执行一次后判断,至少执行一次,第一要素与第三要素相同时,作为首选。 do{ 语句块 }while(Boolean表达式); 无论Boolean表达式的结果是否为true都先执行一次语句块。 while与do-while的区别:
while 先判断后执行 不满足循环条件一次都不执行 do-while 先执行后判断 任何条件下都至少执行一次
for结构 for(表达式1;表达式2;表达式3){ 语句块(循环体) } 计算表达式1的值,计算表达式2 (表达式2为逻辑表达式)的值,如果为ture则执行循环体,否则退出循环。 执行循环体; 执行表达式3; 计算表达式2的值,如果为ture则执行循环体,否则退出循环。 如此循环往复,直到表达式2的值为false。
import java.util.Scanner; //导入scanner包
Scanner s = new Scanner (System.in); #创建扫描器 s.close() #关闭扫描器
在switch之后的括号里书写的表达式的值必须是int、short、char、byte;
从jdk1.5开始允许使用枚举(enum)
从jdk1.7开始允许使用字符串(String)
Javac 文件名.Java 生成.class文件
随机数 Math.random
一、Array(数组)
-
数组概念:数组是一种数据类型(引用类型)
-
数组的定义:int[] arr=new int[元素个数];
-
int[] arr=new int[3]; //默认的值全为0
-
int [] X ={1,3,5,7,9}
-
int 为数组变量的类型,X为数组的变量的命名,{1,3,5,7,9}为数组实例。
-
通过X [ 位置(下标)]形式可以访问数组中的指定的值,其中用来表示位置的数值称为索引或下标。下标或索引从0开始。
-
可以通过(.length)属性来获取数组的长度(即数组中可以容纳的最多的元素个数)System.out.println(X.length);
-
每个数组的length属性都是public,final修饰的。
-
数组组成:数组类型,数组变量,,数组长度
-
数组类型,数组变量,下标或索引,数组元素
-
基本数据类型的默认值: byte 0 ; short 0 ; int 0 ; long 0L; float 0.0F ; double 0.0 ; har '\u0000' ; boolean false;
-
-
引用类型的数组中元素的默认值都是null。
-
程序=算法+数据结构
二、创建数组
-
在定义数组变量时使用”数组常量“,隐式创建并初始化数组
-
显式通过new关键字来创建”数组实例“通过”数组常量“初始化数组
char [] chars = new chars[]{'m','i','a','o'}
-
静态初始化:定义数组常量时直接使用数组常量对数组进行初始化
short [] shorts = {1,3,5,7,9};
动态初始化:在创建数组实例后再对数组进行初始化
short []shorts = new shorts[5] shorts [0] = 1; shorts [1] = 3; shorts [2] = 5; shorts [3] = 7; shorts [4] = 9;
三、遍历、比较、排序数组
-
遍历
for(int i=1;i<=10;i++){ //正序 arr[i]=1+i; } System.out.println(arr[i]); —————————————————————————————————————————————————————— for(int i=arr.length-1;i>=0;i--){ //倒序 System.out.println(arr[i]); }
-
比较数组
首先判断数组长度相等(元素个数相同)
其次判断相应位置的元素都相等(下标也相同)
-
数组排序:常用排序方法(插入排序,冒泡排序,快速排序)
冒泡排序的工作原理:
每一轮都是从第一个元素开始冒,每一次都是和它的相邻元素比较大小
math.sqrt(); 开方
break inner;跳出内层循环
break outer;跳出外层循环
循环结构 : 初始化,条件,循环体,迭代部分
int age ; { age = scan.nextInt(); }
一、数组排序
-
冒泡排序:
将相邻的两个数比较大小,之后交换两数位置,用交换后的数再次与相邻的数字比较大小。
[ 3 , 5 , 4 , 6 , 9 , 8 , 7 , 1 , 2]
[ 3 , 5 , 4 , 6 , 9 , 8 , 7 , 1 , 2]
[ 3 , 4 , 5 , 6 , 9 , 8 , 7 , 1 , 2]
[ 3 , 4 , 5 , 6 , 9 , 8 , 7 , 1 , 2]
[ 3 , 4 , 5 , 6 , 8 , 9 , 7 , 1 , 2]
[ 3 , 4 , 5 , 6 , 8 , 7 , 9 , 1 , 2]
[ 3 , 4 , 5 , 6 , 8 , 7 , 1 , 9 , 2]
[ 3 , 4 , 5 , 6 , 8 , 7 , 1 , 2 , 9]
...............................................................................................
[ 1 , 2 , 3 , 4 , 5, 6 , 7 , 8 , 9]
-
插入排序:(直接插入排序)
假定第一个元素已被排序,将元素从已排序的元素序列从后往前扫描,插入到已经排序的序列(其核心依然是元素交换,比较已排序的元素与待插入的元素的大小)
-
选择排序:
按照顺序比较,找最大值或者最小值,每轮比较都只需做一次位置交换,根据数组的下标来寻找位置。
二、数组拷贝
src表示源数组
srcbegin 表示从从源数组哪个位置开始复制
System.arraycopy(src,srcbegin,dest,dest,destbegin,length)
dest表示目标数组(即将元素复制到的那个数组中)
destbegin表示复制后的元素从目标数组中的哪个位置开始存放
length表示被复制的元素的个数
一、有序数组的二分查找
通过循环来查找(下标或索引),如果有相同的数取首次出现的
查找被指定查找的值(int = 250;)记录key 在arr中位置的变量
length >> 1(向右移位1相当于除以二)
250的 二进制:
11111010(向右移位1后) ==>01111101(输出十进制为) 225
二、多维数组
数组长度一经定义不可变,存储一组相同的数据类型的数据,可以理解为一种镶嵌的数组。二维数组是以一维数组为数据元素的数组。
三、课堂
变量名.getClass(输出变量的数据类型)
隐式创建数据实例(在堆内存中开辟一块连续的空间)
用数组常量的值依次初始化数组中的各个元素,将堆内存中数组实例的首地址赋值给=之前的变量
显式创建数组实例(在堆内存中开辟一块连续的空间)赋值为默认值。
将堆内存中数组实例的首地址赋值给=之前的变量