java 1(概要、变量与运算符)
java ——概要、变量与运算符
✍作者:电子科大不知名程序员
🌲专栏:java学习指导
各位读者如果觉得博主写的不错,请诸位多多支持;如果有错误的地方,欢迎在评论区指出
目录
- java ——概要、变量与运算符
- 命令行
- java的环境搭建
- HelloWorld
- 注释(Comment)
- java API的文档
- 总结
- 关键字与保留字
- 标识符
- java的命名规范
- 变量
- 数据类型
- 整型
- 浮点型
- 字符类型
- 布尔型
- 基本数据类型间的运算
- 编码情况
- String
- 进制与进制间的转换
- 运算符
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 位运算符
- 三元运算符
命令行
d: 到D盘
dir 呈现目录
md java 创建文件夹,名字为java
cd d:\java 进入d盘中的java文件夹
cd… 退回到上一层目录(文件夹)
cd/ 回到整个盘(D)下
用上下键可以调出之前使用到过的指令
del 1.doc 删除文件名为1.doc的文件
del *.txt 删除所有以.txt结尾的文件
rd team2 删除名为team2的文件夹(目录)(前提:team2是空文件)
del team1 删除team1内容中的文件(删除的还是文件)
cd/ 推到盘的根目录位置
java的环境搭建
JDK java开发工具包(包含JRE:运行环境(虚拟机(JVM)+核心类库))
JVM:java虚拟机(使java程序具有跨平台性)
JDK在不同的操作系统不一样(因为不同操作系统对应的JVM不一样)
HelloWorld
创建一个java格式的文件
实现流程:
先创建一个以java为后缀的文件,通过记事本打开后,形成源文件;然后再通过命令javac.exe来对该文件进行编译;形成.class文件(字节码文件);再对此进行java.exe形成结果
在编译文件前,我们首先要到该文件所在的路径下;生成字节码文件的名字是我们创建的类名
按提示将其添加:
然后将main内添加一些内容:
源文件修改后需要重新编译
注意:java中需要严格区分大小写
注释(Comment)
特点:注释内容不参与编译(生成的.class文件中不包含注释的信息)
文档注释:java特有
注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页形式体现的该程序的说明文档(包含作者和版本)
多行注释不能嵌套使用!
java API的文档
总结
1.JDK,JRE,JVM三者之间的关系
JDK=JRE+java开发工具(javac.exe,java.exe,javadoc.exe)
JRD=JVM+Java核心类库
2.为什么要配置path环境变量?
使某个程序,比如javac.exe,在任意目录下都可以运行
package my_first_java_code;public class 输出 {public static void main(String[] args) {System.out.println("name:");System.out.println(); System.out.println("address:");}
}
System.out.println();//这里是println,意思是输出的占一行,因此这里什么都不写的意思就是换一行
println理解为输出一段字符串后换行,我们也可以使用print然后加\n达到换行的目的
运行结果如下:
关键字与保留字
关键字
保留字:现java版本尚未使用,但以后版本可能会作为关键字使用(goto、const)
标识符
java对各种变量、方法、类等要素取名时使用的字符序列称为标识符
技巧:凡是可以自己取名字的地方都叫标识符
标识符的命名规则:
1.26个英文大小写、下划线、0-9或$;
2.数字不能作为开头;
3.不能使用关键字和保留字,但可以包含它们
4.严格区分大小写,长度无线制
5.标识符不能含有空格
java的命名规范
包名:多单词组成所有字母都小写
类目、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名,方法名:多单词组成,第一个单词首字母小写,第二个单词开始每个单词首字母大写
常量名:所有字母都大写。多单词用下划线连接
以上要求,如果不遵守也不会对编译产生什么影响,但建议还是要遵守
起名字的时候,尽量做到见名知意,不要出现中文;
变量
类型:字符串、整型、浮点型、布尔类型…(java要求的是强类型,使用变量时需要规定变量类型)
包含:变量类型、变量名、储存的值
变量需要先声明赋值再使用(未定义、未被赋值都不行)
定义格式:数据类型 变量名=变量值;
package my_first_java_code;public class 定义变量 {public static void main(String args) {int myAge=18;System.out.println(myAge);//注意,这里不加双引号,因为不是字符串了}
}
变量都定义在作用域内(作用域即是{}内),出作用域后不能使用;同一个作用域内不能定义同名的变量
数据类型
整型
分析,一个byte有8个比特位,由0、1组成一共有2^8=256种组合,由于要区分正负,我们将它对半分开,即可得到它的表数范围
特别的,声明long型变量,必须以“l”或"L"结尾
long L1=1234567;
通常定义整型变量时使用int型
浮点型
float(4字节)\double(8字节)
浮点型,表示带小数点的数值;
1.如图即可产生一个问题:同样都是占4个字节的空间,为什么float表数范围比int、long还要大?
因为float表示数值的方式是以幂次+小数的方式
2.定义float变量时,变量值的末尾从应该用“f”或“F”来表示
double d1=123.1;
System.out.println(d1);
float d2=123.1F;
System.out.println(d2);
3.通常定义浮点型变量时用double:范围更大、精度更高、书写时可以省区f/F
字符类型
char:一字符=2字节
1.定义char型变量通常使用一段单引号’ ’
char c1='a';
char c2='AB'; //wrong:只能声明一个字符
char c3='中'; //right:可以写一个汉字(或其它语言)
2.表示方式:声明一个字符;转义字符
char c4='\n'; //right:换行符
于是下列两端代码表示相同的意思:
System.out.println("hello");
System.out.print("hello+c4");
3.直接使用Unicode值来表示字符型常量
char c5='\u0043';
布尔型
boolean
1.只能取两个值之一:true/false
boolean bb1=true;
boolean bb2=false;
注意: 与C语言不同,C语言用0/1来判断,而java就是用的true和flase来表示
2.常常在条件判断、循环结构中使用
基本数据类型间的运算
基本数据类型之间的运算规则:
前提:这里讨论的是7种数据类型变量间的运算,不会包含boolean类型的
1.自动类型提升:
byte b1=2;
int i1=129;
byte b2=b1+i1; //wrong
int i2=b1+i1; //right
long l1=b1+i1; //right
float f1=b1+i1; //right
byte、char、short------> int------> long ------>float ------>double
结论:当表示数的容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型
特别的:当byte、char、short三种类型的变量做运算时,结果为int类型**(就算是short和short这种同类型的,它们的结果仍是int来接收)**
2.强制类型转换:自动类型提升的逆运算
double d1=12.3;
int i1=d1; //wrong
double d1=12.3;
int i1=(int)d1; //若输出i1,值为12,该操作为截断操作
需要使用强转符:();强制类型转换后可能导致精度损失
编码情况
1.定义long型未加L------> 系统会默认为int型,若遇到过大的整数则会编译失败
若float型未加F:编译失败
2.对于整型常量,默认类型为int型;浮点常量默认类型为double型
short s1=1;
short s2=s1+1; //wrong:1的类型为int型
String
String类型变量的使用:
1.String属于引用数据类型,翻译为:字符串
2.声明String类型变量时,**使用一对" "*8
String s1="hello world";
System.out.println(s1);
3.String类型" "内可以什么都没有,而char’ '内必须且只能放一个字符
String s=""; //right
char c=''; //wrong
4.String可以和8种基本数据类型变量做运算,且运算只能是连接运算;运算结果仍为String类型
int number=1001;
String numberStr="学号:";
String info=numberStr+number; //+:连接运算
我们来分析如下程序
情况1:
public class StringTest {public static void main(String[] args) {String str ="hello";char c='a'; //a:97int num=10;System.out.println(c+num+str); //107helloSystem.out.println(c+str+num); //ahello10System.out.println(c+(num+str)); //ahello10System.out.println((c+num)+str); //107hello}
}
由于a的ASCII码值为97,因此再做c+num(a+10)时是一个字符类型+整型的运算,使用ASCII码来计算
情况2:
package my_first_java_code;public class StringTest2 {public static void main(String[] args) {//输出* *System.out.println('*'+'\t'+'*'); //ASCLL码作加法运算,结果为int型System.out.println('*'+"\t"+'*'); //有Strin后+代表连接System.out.println('*'+'\t'+"*"); //前面的是char类型加法,后面为String再连接System.out.println('*'+('\t'+"*"));}
}
运行结果如下:
进制与进制间的转换
2进制:以0b或0B开头
8进制:以数字0开头表示
16进制:0-9及A-F,以0x或0X开头
public class Conversion_between_bases {public static void main(String[] args) {int num1=0b110;int num2=110;int num3=0127;int num4=0x110A;System.out.println("num1= "+num1);System.out.println("num2= "+num2);System.out.println("num3= "+num3);System.out.println("num4= "+num4);}
}
运行结果如下:
系统会将他们的值转为10进制
运算符
算术运算符
+:正号、加、字符串连接
1.除号
int num1=12;
int num2=5;
int result1=num1/num2;
System.out.println(result1); //2int result2=num1/num2*num2;
System.out.println(result2); //10double result3=num1/num2;
System.out.println(result3); //2.0double result4=num1/(num2+0.0);
System.out.println(result4); //2.4double result5=(double)num1/num2;
System.out.println(result5); //2.4
2.取模号
%:取余运算------>结果的符号与被模数的符号相同 被模数%模数=余数
3.自增/自减
++a:先让a自增1后再使用;a++先使用再让a自增1(对于--来说同理)
注意:自增从自减不会改变本身变量的数据类型
short s1=10;
s1=s1+1; //wrong:这里的1是int型
s1=(short)(s1+1); //right
s1++; //right:自增1不会改变本身变量的数据类型
问题:
byte b1=127;
b1++;
System.out.println("b1="+b1); //-128(按二进制的本质来理解即可)
赋值运算符
= += -= *= /= %=
1.赋值
//连续赋值
int i1,i2;
i1=i2=10; //rightint i1=10;i2=10; //right
2.对于 += -= *= /= %=它们来说,和自增自减一样不会改变本身变量的数据类型
3.开发中如果希望变量实现+2的操作的方法:
num=num+2;
num+=2; //更好
比较运算符
比较运算符"==“不能误写成”="
public class CompareTest {public static void main(String[] args) {int i=10;int j=20;System.out.println(i==j); //判断是否相等System.out.println(i=j); //将j的值赋值给i后输出boolean b1=true; boolean b2=false;System.out.println(b2==b1); //判断是否相等System.out.println(b2=b1); //赋值后输出}
}
逻辑运算符
& 逻辑与
| 逻辑或
! 逻辑非
&& 短路语
|| 短路或
^ 逻辑异或(两者不同值为true,两者相同值为false)
我们发现,&和&&;|和||好像一样,那它们有什么区别呢
说明:逻辑运算符操作的都是boolean类型的变量
1.&和&&的区别(且)
&和&&的运算结果相同 ;当符号左边是false时,两者都会执行符号右边的结果
不同:当符号左边是false时,&会继续执行符号右边的运算,&&不再执行符号右边的运算**(短路)**
2.|和||的区别(或)
|和||的运算结果相同 ;当符号左边是false时,两者都会执行符号右边的结果
不同:当符号左边是false时,|会继续执行符号右边的运算,||不再执行符号右边的运算**(短路)**
【总结】:开发者用短路语&&、||更好
位运算符
其中&、|、^在逻辑运算符中也存在
移位操作符:移动的是二进制
我们先引入进制的概念:
例如数值15 15-十进制表示=1*101+5*100 而15换算成八进制即为17
那么我们知道,15的二进制表示为1111,1111称为15的二进制序列
整型的二进制表示:原码、反码、补码
15 整数,在C语言可以存放到int类型的变量中,int类型是4个字节-32bit,其中最高位(32位)叫做符号位
15 00000000 00000000 00000000 00001111 -原码
15 00000000 00000000 00000000 00001111 -反码
15 00000000 00000000 00000000 00001111 -补码
正整数的原码、反码、补码相同
-15 由于它是负数,它的最高位是1表示负数
-15 10000000 00000000 00000000 00001111 -原码 :负数的原码最高位为1,其它位不变
-15 11111111 11111111 11111111 11110000 -反码:原码的符号位不变,其他位按位取反
-15 11111111 11111111 11111111 11110001 -补码:反码的二进制位加一即得补码
整数在内存中的存储是二进制的补码,移位操作符移动的是存储在内存中的补码
左移
#include<stdio.h>
int main(){int a = 4;//00000000 00000000 00000000 00000100 - 4的原码、补码int b = a << 1; //把a向左移动一位printf("a=%d b=%d\n", a, b);return 0;
}
运行结果如下:
00000000 00000000 00000000 00000100 - 4的补码向左移动移位后移动后结果是00000000 000000000 00000000 00001000(补码向左移动一位),那么对应的值b为8
左移有扩大一倍的效果
右移
1.逻辑右移:右边丢弃,左边补0
2.算术右移:右边丢弃,左边补原符号位(一般编译器采用算术右移)
右移方式取决于编译器
对于移位操作符,不要移动负数位,这个标准是未定义的
右移有缩小一倍的效果
三元运算符
格式:(条件表达式)?表达式1:表达式2
逻辑:条件表达式==true ------>表达式1(且表达式1作为整个表达式的值)
条件表达式==false------>表达式2(且表达式2作为整个表达式的值)
//找a,b中的较大值
int max=(m>n)?m:n //a如果大于b则输出a否则输出b
要求:表达式1和表达式2要统一类型
三元运算符是可以嵌套使用的
//获取三个数的最大值(n1,n2,n3)
int max1=(n1>n2)?n1:n2;
int max2=(max1>n3)?max1:n3;
//这里可以嵌套,但可读性太差了
三元运算符与if-else:
凡是可以使用三元运算符的地方,都可以改写成if-else,但逆过来就不一定了
- 4的补码向左移动移位后移动后结果是00000000 000000000 00000000 00001000(补码向左移动一位),那么对应的值b为8
左移有扩大一倍的效果
右移
1.逻辑右移:右边丢弃,左边补0
2.算术右移:右边丢弃,左边补原符号位(一般编译器采用算术右移)
右移方式取决于编译器
对于移位操作符,不要移动负数位,这个标准是未定义的
右移有缩小一倍的效果
相关文章:
java 1(概要、变量与运算符)
java ——概要、变量与运算符 ✍作者:电子科大不知名程序员 🌲专栏:java学习指导 各位读者如果觉得博主写的不错,请诸位多多支持;如果有错误的地方,欢迎在评论区指出 目录java ——概要、变量与运算符命令行…...
力扣解法汇总2363. 合并相似的物品
目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 给你两个二维整数数组 items1 和 items2 ,表示两个物品集合。每个数…...
2022年终总结-找回初心
和“那个夏天”群聊的几位死党聊完天后,发现自己已经忘了初心2年有余了,也是这次聊天让我重新燃起了要继续努力奋斗的想法。那就说一说2022年我过得如何吧。2022年过完春节刚来公司的几天就传来了一个好消息,我涨薪了。在没有涨薪之前私下有时…...
Allegro如何打开或者关闭DFA规则设置操作指导
Allegro如何打开或者关闭DFA规则设置操作指导 在用Allegro做PCB布局的时候,器件与器件之间的DFA规则可以避免器件出现装配问题。如下图 当DFA规则设置好之后,如何打开或者关闭规则,具体操作如下 点击Setup点击Constraints...
kind kubernetes 集群内如何通过 helm 部署定制化 Prometheus-Operator?
文章目录1. Prometheus 简介2. Prometheus 优势3. Prometheus 架构图4. Prometheus-Operator 简介5. Prometheus-Operator 架构图6. 环境准备7. Kind 部署 Kubernetes7.1 安装 Ingress-nginx 组件7.2 安装 Metric Server 组件8. helm 快速安装 Prometheus-Operator9. 定制 Prom…...
流媒体付服务器 ZLMediaKit 学习记录
1.官方github:ZLMediaKit 依赖于 media-server 库 #国内用户推荐从同步镜像网站gitee下载 git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit #千万不要忘记执行这句命令 git submodule update --init 之后 cd ZLMediaKit mkdir build…...
2023年了还不会写软件测试简历吗,那就来看这里吧,怎么样才能更容易让HR看到你的简历
作为软件测试的从业者,面试或者被面试都是常有的事。 可是不管怎样,和简历有着理不清的关系,面试官要通过简历了解面试者的基本信息、过往经历等。 面试者希望通过简历把自己最好的一面体现给面试官,所以在这场博弈中࿰…...
第四阶段08-基于element-ui的vue2.0脚手架(续)
42. VUE脚手架项目嵌套路由 在配置路由(配置/src/router/index.js)时,如果配置的路由对象是routes常量的直接数组元素,则此路由配置的视图会显示在App.vue的<router-view/>中。 在设计视图时,可能会出现<ro…...
数据库设计规范
三范式首先,设计数据库,要尽可能的满足三范式,遵循三范式开发会减少数据冗余、提升系统可扩展性和查询性能。第一范式的目标是确保每列的原子性如果每列都是不可再分的最小数据单元(也称为最小的原子单元),…...
深入浅出PaddlePaddle函数——paddle.Tensor
分类目录:《深入浅出PaddlePaddle函数》总目录 Tensor是Paddle中最为基础的数据结构,有几种创建Tensor的不同方式: 用预先存在的数据创建1个Tensor,请参考paddle.to_tensor创建一个指定shape的Tensor,请参考paddle.on…...
docker删除已停止的容器
一、docker删除已停止的容器 1、根据容器的状态,删除Exited状态的容器 先停止容器、再删除镜像中的容器、最后删除none的镜像。执行命令如下: docker stop $(docker ps -a | grep "Exited" | awk {print $1 }) #停止容器 docker rm $(docke…...
JS#1 引入方式和基础语法
JavaScript(JS)是一门跨平台, 面向对象的脚本语言, 来控制网页行为的, 它能够是网页可交互一. 引入方式内部脚本与外部脚本内部脚本: 将JS代码定义在HTML页面中外部脚本: 将JS代码定义在外部JS文件中, 然后引入到HTML页面中注意: 在HTML中,JS代码必须位于<script></sc…...
面了一个测试工程师,明显感觉他背了很多面试题...
最近有朋友去字节面试,面试前后进行了20天左右,包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说,80%的人都会栽在第一轮面试,要不是他面试前做足准备,估计都坚持不完后面几轮面试。 其实&…...
C#生成缩略图
using System;using System.Collections.Generic;using System.Drawing;using System.Drawing.Drawing2D;using System.Drawing.Imaging;using System.Text;namespace learun.util{public enum ThumbnailMode{/// <summary>/// 指定宽度,高度按照比例缩放/// …...
算法 # SimHash 算法:文本相似度、文本去重、海量文本快速查询
SimHash SimHash 是 Google 发明的海量网页去重的高效算法,将原始的文本映射为 64 位的二进制串,然后通过比较二进制的差异进而表示原始文本内容的差异。 传统的 Hash 算法只负责将原始内容尽量均匀随机地映射为一个 hash 值,原理上相当于伪随机数产生算法。SimHash 本身属…...
Java程序设计-JSP程序设计-SSM校园二手交易系统
摘 要 网络的广泛应用给生活带来了十分的便利。所以把二手物品交易管理与现在网络相结合,利用java技术建设二手物品交易系统,实现二手物品交易的信息化。则对于进一步提高二手物品交易管理发展,丰富二手物品交易管理经验能起到不少的促进作用…...
springBoot 消息转换器和自定义消息转换器
public interface HttpMessageConverter<T> {/*** 能否以指定的类读取*/boolean canRead(Class<?> clazz, Nullable MediaType mediaType);/*** 能否以指定的类写*/boolean canWrite(Class<?> clazz, Nullable MediaType mediaType);/*** 返回支持是消息转…...
机器学习笔记之流形模型——标准流模型基本介绍
机器学习笔记之流形模型——标准流模型基本介绍引言回顾:隐变量模型的缺陷标准流(Normalizing Flow\text{Normalizing Flow}Normalizing Flow)思想分布变换的推导过程引言 本节将介绍概率生成模型——标准流模型(Normalizing Flow\text{Normalizing Flow}Normalizi…...
MIT:只需一层RF传感器,就能为AR头显赋予“X光”穿透视力
近年来,AR在仓库、工厂等场景得到应用,比如GlobalFoundries、亚马逊、菜鸟裹裹就使用摄像头扫描定位货品,并使用AR来导航和标记。目前,这种方案主要基于视觉算法,因此仅能定位视线范围内的目标。然而,在一些…...
对 Dom 树的理解
什么是 DOM 从网络传给渲染引擎的 HTML 文件字节流是无法直接被渲染引擎理解的,所以要将其转化为渲染引擎能够理解的内部结构,这个结构就是 DOM。 DOM 提供了对 HTML 文档结构化的表述。 在渲染引擎中,DOM 有三个层面的作用: …...
电商搜索入门
一、搜索用途通常一个电商平台里面的商品,少则几十万多则上千万甚至上亿的sku,在这么多的商品中,如何让用户可以快速查找到自己想要的商品,那么就需要用到搜索功能来实现。通过分析数据发现,接近40%的点击率是直接通过…...
4.3.1初阶数据结构(C语言)(无头不循环单链表)
1.完整的单链表注释: #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h>typedef int SLTDateType; // 重定义数据类型typedef struct SListNode // 定义结构体类型的节点 {SLTDateType data;str…...
一文深度解读音视频行业技术发展历程
从1948年的香农定律,到音视频的今天。IMMENSE、36氪|作者 北京时间2月28日凌晨,FIFA年度颁奖典礼在巴黎举行。梅西荣膺年度最佳球员,斯卡洛尼当选年度最佳男足主帅,马丁内斯荣获年度最佳男足门将!阿根廷因…...
面向对象拓展贴
1. 类和对象的内存分配机制 1.1 分配机制 Java 内存的结构分析 栈: 一般存放基本数据类型(局部变量)堆: 存放对象(Cat cat , 数组等)方法区:常量池(常量,比如字符串), 类加载信息示意图 [Cat (name, age, price)]…...
Android仿QQ未读消息拖拽粘性效果
效果图原理分析首先是在指定某个位置画一个圆出来,手指按到这个圆的时候再绘制一个可以根据手指位置移动的圆,随着手指的移动两个圆逐渐分离,分离的过程中两圆中间出现连接带,随着两圆圆心距的增大,半径也是根据某一比…...
Linux 打包压缩解压指令 gzip bzip2 tar
总结自鸟哥Linux私房菜 Linux压缩文件的扩展名大多是:“.tar, .tar.gz, .tgz, .gz, .Z, .bz2, *.xz”, 不同压缩文件使用了不同的算法,不能通用压缩或解压 常见扩展名: *.Z compress 程序压缩的文件; *.zip zip 程序…...
系统升级丨分享返佣,助力商企实现低成本高转化营销
秉承助力传统经济数字化转型的长远理念 酷雷曼VR再次在VR全景营销中发力 创新研发“分享返佣”功能 进一步拓宽商企VR全景营销渠道 助力商企搭建低成本、高传播、高转化 的VR营销体系 01、什么是“分享返佣”? ●“分享返佣”即“推广”返佣,是酷…...
机试代码模板
文章目录进制转换高精度加/乘法搜索BFSDFS树二叉树遍历图Dijkstra算法Kruskal算法动态规划最长公共子序列(LCS)最长上升子序列(LIS)KMP算法进制转换 #include <iostream> #include <string> #include <cmath> #include <iomanip> #include <algori…...
Java性能优化-垃圾回收算法-理解CMS回收器
垃圾回收算法 理解 CMS回收器 三个基本操作 1.回收新生代(同时暂停所有的应用线程) 2.运行并发周期来清理老年代数据 3.如果有必要则FULL GC压缩老年代 当发生新生代回收 , 如果老年代没有足够的空间容纳晋升的对象则执行FULL GC,所有线程停…...
Oracle11G的表空间数据文件大小限制问题处理
1.表空间数据文件容量 oracle11g的表空间数据文件容量与DB_BLOCK_SIZE有关,在初始建库时,DB_BLOCK_SIZE要根据实际需要,设置为 4K,8K、16K、32K、64K等几种大小,ORACLE的物理文件最大只允许4194304个数据块(由操作系统…...
计算机三级|网络技术|备考指南|网络系统结构与设计的基本原则|1
一、网络系统结构与设计的基本原则宽带城域网的关键技术p1 p2 p3设计一个宽带城域网涉及“三个平台一个出口”,即网络平台、业务平台、管理平台和城市宽带出口。宽带城域网:宽带城域网划分为三个层次:核心层、汇聚层、接入层。核心层承担高速…...
基于 TI Sitara系列 AM64x核心板——程序自启动说明
前 言 本文主要介绍AM64x的Cortex-A53、Cortex-M4F和Cortex-R5F核心程序自启动使用说明。默认使用AM6442进行测试演示,AM6412测试步骤与之类似。 本说明文档适用开发环境如下: Windows开发环境:Windows 7 64bit、Windows 10 64bit 虚拟机:VMware15.5.5 Linux开发环境:Ubun…...
自学5个月Java找到了9K的工作,我的方式值得大家借鉴 第一部分
我是去年9月22日才正式学习Java的,因为在国营单位工作了4年,在天津一个月工资只有5000块,而且看不到任何晋升的希望,如果想要往上走,那背后就一定要有关系才行。而且国营单位的气氛是你干的多了,领导觉得你…...
微电影广告的内容突破方案
微电影作为新媒体时代背景的产物,深受大众的欢迎,同时,微电影广告在微电影模式环境下应运而生,以自己独特的传播优势,俘获了大量企业主的青睐,也获得了广大青年群体的喜爱。微电影广告欲确保可持续发展&…...
茌平区为什么越来越多的企业由请高新技术企业?山东同邦科技分享
茌平区为什么越来越多的企业由请高新技术企业?山东同邦科技分享 近年来,越来越多的企业开始申报高新技术企业,认定为国家高新技术企业能获得非常多的好处,那么具体都有哪些呢? 一、国际高新技术企业认定的好处: 1、财政补贴: 获得高新企业…...
谷歌优化排名怎么做出来的?谷歌排名多久做上去?
本文主要分享谷歌排名的算法机制,让你很容易地用更短的时间把Google的自然排名做到首页。 本文由光算创作,有可能会被剽窃和修改,我们佛系对待这种行为吧。 谷歌优化排名怎么做出来的? 答案是:持续更新原创优质内容…...
字节跳动青训营--Webpack
文章目录前言一、为什么要学习Webpack?二、什么是Webpack?1. 产生背景2. 基础概念三、使用Webpack1. 安装2. 编辑配置文件3. 执行编译命令核心流程四、如何使用Webpack流程类配置配置总览五、理解Loader六、理解插件插件钩子课外关注资料前言 此文章仅用…...
微信多媒体文件speex格式转为mp3文件格式
1、安装speex环境 wget https://ftp.osuosl.org/pub/xiph/releases/speex/speex-1.2.0.tar.gz tar -zxvf speex-1.2.0.tar.gz -C /usr/local/ cd /usr/local/speex-1.2.0/ ./configure make make install 2、配置path到/usr/lib 因为安装的speex生成的可执行文件默认在/usr…...
IAP初探
IAP(In-Application Programming)在应用编程,浅显易懂,按照字面意思即是在程序不关闭情况下,对应用进行再次写入程序,对程序的写入需要传输数据,而传输数据的前提是通信, IAP对代码进行更新可以简要分为以…...
【组织架构】中国铁路兰州局集团有限公司
1 公司简介 中国铁路兰州局集团有限公司,是中国国家铁路集团有限公司管理的18个铁路局集团有限公司之一,简称“兰局”。经过59年的发展,现已成为西北地区最大的交通运输企业之一,形成了以兰州为枢纽,由陇海铁路、包兰铁…...
【计算机三级网络技术】 第四篇 路由设计技术基础
文章目录一、分组转发二、路由选择1.理想的路由算法的基本特征2.路由算法的度量标准3.路由算法分类:4.IP路由选择与路由汇聚(重点)三、自治系统与Internet的路由选择协议1.自治系统2.路由选择协议的分类四、内部网关协议1.RIP的基本概念2.RIP的原理3.RIP的运行过程五…...
嵌入式工程师进阶,基于AM64x开发板的IPC多核开发案例分享
前 言 本文档主要说明AM64x基于IPC的多核开发方法。默认使用AM6442进行测试演示,AM6412测试步骤与之类似。 适用开发环境如下: Windows开发环境:Windows 7 64bit、Windows 10 64bit 虚拟机:VMware15.5.5 Linux开发环境:Ubuntu 18.04.4 64bit Linux Processor SDK:ti-proc…...
腾讯安全与锐捷网络战略合作,威胁情报能力“被集成”
2月28日,腾讯安全和锐捷网络在北京联合举办“威胁情报”战略合作发布会。双方发布了一款集成了腾讯安全威胁情报的新一代防火墙,并举办战略合作签约仪式。会上,锐捷网络安全产品事业部总经理项小升、腾讯安全总经理陈龙代表双方签署战略合作协…...
接口自动化测试用例详解
phpunit 接口自动化测试系列 Post接口自动化测试用例 Post方式的接口是上传接口,需要对接口头部进行封装,所以没有办法在浏览器下直接调用,但是可以用Curl命令的-d参数传递接口需要的参数。当然我们还以众筹网的登录接口为例,讲…...
【数据库增删查改进阶版】保姆级教程带大家去学习更加复杂的sql语句,各种各样的约束以及各种各样的查询
前言: 大家好,我是良辰丫🍅🍅🍅,上一篇数据库我们一起学习了基础版本的增删查改,今天我们将接触更高级的增删查改,主要是学习一些约束条件,你们准备好了嘛?开…...
【C#基础】C# 正则表达式
序号系列文章7【C#基础】C# 常用数据结构8【C#基础】C# 面向对象编程9【C# 基础】C# 异常处理操作文章目录前言1,Regex 的概念2,Regex 的创建3,Regex 常用操作4,Regex 类的使用5,学习资源推荐结语前言 🌼 h…...
企业活动直播如何设置VIP观看席?
阿酷tony / 2023-2-28 / 长沙 / 多图内容企业活动直播如何设置VIP观看席?有意思吧,直播也能设vip席位。在直播间可以分设尊享嘉宾席、特邀VIP以及观众席三个区域,为企业提供多种用户接待模式,不仅能为嘉宾营造尊享VIP体验…...
线性代数学习-2
线性代数学习-2矩阵消元消元回代消元矩阵置换矩阵逆矩阵本文转载于https://herosunly.blog.csdn.net/article/details/88713747 该文章本人认为十分有用,便自己敲一遍笔记加固印象原文链接 原文这个笔记感觉比我老师讲的更加透彻,清晰。很好的展示了线性…...
Java 类
Java类是Java编程语言中的基本概念之一,用于描述对象的属性和方法。本文将详细介绍Java类的作用、定义和使用,以及在实际工作中的应用。 什么是Java类? Java类是一种用于描述对象的模板或蓝图。它定义了一个对象的属性和方法,以…...
GO中sync 包的 RWMutex 读写互斥锁
文章目录背景RWMutex 简介代码验证多个协程请求读锁 RLock() 和 RLock()读写交错 RLock() 和 Lock()写入的时候读取读取的时候写入请求多个写Lock() 和 Lock()背景 Mutex 互斥锁是严格锁定读和写,如果我们需要单独对读或者写添加锁需要使用 sync包的RWMutex 针对读…...