Java基础集合一

仓库的代码推送与拉取

  • 查看配置

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(输出变量的数据类型)

隐式创建数据实例(在堆内存中开辟一块连续的空间)

用数组常量的值依次初始化数组中的各个元素,将堆内存中数组实例的首地址赋值给=之前的变量

显式创建数组实例(在堆内存中开辟一块连续的空间)赋值为默认值。

将堆内存中数组实例的首地址赋值给=之前的变量


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值