Java基础语法——运算符与表达式
目录
Eclipse下载 安装 使用
运算符
键盘录入
Eclipse下载 安装 使用
- Eclipse的概述(磨刀不误砍柴工)——是一个IDE(集成开发环境)
- Eclipse的特点描述
(1)免费
(2)纯Java语言编写
(3)免安装
(4)扩展性强
- 下载和安装
(1)下载 The Community for Open Innovation and Collaboration | The Eclipse Foundation
(2)安装 绿色版 解压就可以使用(Eclipse)
①按照上述网址进入下列网址:
②点击Download,再进入系列界面
③下载下列安装包
④点击下载进入下列界面,是一个捐钱界面,无需理会,不是Eclipse的软件付费界面,Eclipse是免费的软件。(可以使用360浏览器下载,有迅雷加速,谷歌浏览器下载的可慢了)
⑤解压并且安装
什么是工作区?——工作区可以比作房子,在工作区里边可以建立好多项目,项目又可以比作房子里边的家具
Eclipse的基本使用
选择工作空间——–其实就是我们写的源代码所在的目录
用Eclipse来完成一个HelloWorld案例
(1)–代码以项目为基本单位
(2)–创建项目
(3)–创建包
(4)–创建类
(5)–编写代码
(6)–编译
(7)–运行
其项目的创建实现如下:
package com.demo;public class HelloWorld {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("HelloWorld");}}
关于Eclipse的小技巧:
(1)如果不小心把Console关掉,怎么办?
点击工作区的Window-Show View-Console
(2)如果我们把所有的工作区都关掉,应该怎么办?
点击工作区Window-Perspective-Reset Perspective
(3)字体的大小和颜色修改
Window-Preference-Appearabce-Colors and Fonts-basic-Text Font
(4)行号的显示
点击右键,Show Line Numbers
(5)自动保存和编译
工作区Project-Build Automatically,不打勾将不会自动保存
(6)如何导入别人做的工程?、
右键import-General-Existing Projects into Workspace
运算符
运算符——–对常量和变量进行操作的符号称为运算符
表达式
(1)用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。不同运算符连接的式子体现的是不同类型的表达式。
(2)定义两个int类型的变量a,b,做加法(a + b)
常用运算符
(1)算术运算符
(2)赋值运算符
(3)关系运算符
(4)逻辑运算符
(5)三元运算符
一、算术运算符
- +,-,*,/的基本使用
- %的使用
- %和/的区别
- ++,--
- 自增自减
eg:代码:(1.2.3案例代码说明)
// 定义了一个包
package com.yunsuanfu;// 定义类
public class Yunsuanfu {/*** Alt+/快捷键能够快速的帮助写出代码* 按住Crtl+鼠标左键,可以快速定位到对应的变量、方法或者其他的类*/public static void main(String[] args) {//加法int c = add(1,2);System.out.println(c);//减法float d = substract(100.2f,50.1f);System.out.println(d);//乘法// 这里因为乘法那个函数不是静态的,我们要写入静态函数,需要加这一句话,没有static修饰符的,相当于一个动态的方法,首先我们需要将一个类new一个对象Yunsuanfu yunsuanfu = new Yunsuanfu();int e = yunsuanfu.multiply(5,6);System.out.println(e);//除法,上边已经new了,我们这里可以直接调用的float f = yunsuanfu.divide(100.0f, 3.0f);System.out.println("除法:"+f);//整数除法int h = yunsuanfu.divide(10, 3);System.out.println("整数除法:"+h);//取余long g = yunsuanfu.mod(10, 3);System.out.println(g);;}/***两个整数相加*@parameter a*@parameter b*@return*/public static int add(int a,int b) {int c = a+b;return c;}/*** 减法*/public static float substract(float a,float b) {float c = a - b;return c;}/*** 乘法*/public int multiply(int a,int b) {int c = a * b;return c;}/*** 除法*/public float divide(float a,float b) {float c = a/b;return c;}/*** 整数除法*/public int divide(int a,int b) {int c = a/b;return c;}/*** 取余*/public long mod(long a,long b) {long c = a%b;return c;}
}
eg 代码(4,5案例代码说明)
package com.yunsuanfu;
/*** 自增和自减* @author 无限嚣张(菜菜)**/
public class SelfAddSubstract {public static void main(String[] args) {// TODO Auto-generated method stubSelfAddSubstract selfAddSubstract = new SelfAddSubstract();int i =10;System.out.println("i初始值:"+i);System.out.println("i自增后"+selfAddSubstract.selfAdd(i));System.out.println("i初始值"+i);System.out.println("i自减后:"+selfAddSubstract.selfSubstract(i));}/*** 自增*/public int selfAdd(int j) {++j;return j;}/*** 自减*/public int selfSubstract(int k) {--k;return k;}
}
i++和++j的区别(一般用在循环里)
i++放在后边,先调用他的值,再加1,++j放在前边,是先加1再运算
package com.yunsuanfu;/*** 自增的两种形式* @author 无限嚣张(菜菜) */
public class Self1 {public static void main(String[] args) {int i = 10;//++放在后面的时候先调用他的值再加1//i = i+1;System.out.println(i++);int j = 10;//++放在前面,先加1,再运算System.out.println(++j);}}
二、字符和字符串参与+运算
•字符参与运算
–其实是拿该字符对应的数值来操作(unicode码)
–‘a’ 97
–‘A’ 65
–‘0’ 48
•字符串参与运算
–这里其实做的不是加法运算,而是字符串拼接。
–字符串和其他类型的数据做拼接,结果是字符串类型的。
代码演示:
package com.yunsuanfu;
/*** 字符运算* @author 无限嚣张(菜菜)**/
public class CharDemo {public static void main(String[] args) {char a='a';char b='1';System.out.println(a>b);}}
字符串拼接
代码演示
package com.yunsuanfu;
/*** 字符串加法,字符串拼接* @author 无限嚣张(菜菜)**/
public class StringAddDemo {public static void main(String[] args) {String a = "我";String b = "是";String c = "程序员";System.out.println(a+b+c+"!");}}
赋值运算符
- 基本的赋值运算符:=
- 扩展的赋值运算符:+=,-=,*=,/=,…
代码演示
package com.yunsuanfu;
/*** 扩展运算符* @author 无限嚣张(菜菜)**/
public class Zhangfei {public static void main(String[] args) {// TODO Auto-generated method stubint i = 10;int j = i +1;j += 1; //相当于j = j+1;System.out.println(j);}}
关系运算符
- ==,!=,>,>=,<,<=
- 关系运算符的结果都是boolean型,也就是要么是true,要么是false。
- 注意事项
–关系运算符“==”不能误写成“=” 。
代码演示
package com.yunsuanfu;
/*** Eclipse小技巧* Ctrl+shift+F 格式化代码* @author 无限嚣张(菜菜)**/
public class GuanXiYunSanFu {public static void main(String[] args) {// TODO Auto-generated method stubint a = 1;int b = 2;System.out.println("a==b:?"); // 字符串不能和true和false做拼接System.out.println(a==b);System.out.println("a<=b:?");System.out.println(a<=b);}}
逻辑运算符(比较重要,也比较烧脑,多练习)
- 逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 && x<6 。
- &,|,^,!
- &&,||
- “&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
代码演示
package com.yunsuanfu;/*** Eclipse小技巧 Ctrl+shift+F 格式化代码* Eclipse小技巧 Ctrl+shift+/ 注释多行代码* @author 无限嚣张(菜菜)**/
public class GuanXiYunSanFu {public static void main(String[] args) {// TODO Auto-generated method stub/** int a = 1; int b = 2; System.out.println("a==b:?"); // 字符串不能和true和false做拼接* System.out.println(a==b); System.out.println("a<=b:?");* System.out.println(a<=b);*/boolean a = true;boolean b = false;boolean c = true;boolean d = false;/*** 单与*/System.out.println("***********************************************");System.out.println(a&b); //看两个是不都是true,都是true,返回true,否则返回falseSystem.out.println(a&c); //看两个是不都是true,都是true,返回true,否则返回falseSystem.out.println(b&c); //看两个是不都是true,都是true,返回true,否则返回falseSystem.out.println(b&d); //看两个是不都是true,都是true,返回true,否则返回false/*** 双与*/System.out.println("***********************************************");System.out.println(a&&b); //判断第一个,如果是true,再判断第二个,如果是false,直接返回false,如果是true,返回trueSystem.out.println(a&&c); //判断第一个,如果是true,再判断第二个,如果是false,直接返回false,如果是true,返回trueSystem.out.println(b&&c); //判断第一个,如果是true,再判断第二个,如果是false,直接返回false,如果是true,返回trueSystem.out.println(b&&d); //判断第一个,如果是true,再判断第二个,如果是false,直接返回false,如果是true,返回true/*** 单或;除非两个都是false,才返回false,否则返回true*/System.out.println("***********************************************");System.out.println(a|b); System.out.println(a|c); System.out.println(b|c); System.out.println(b|d); /*** 双或;有一个true,返回true*/System.out.println("***********************************************");System.out.println(a||b); System.out.println(a||c); System.out.println(b||c); System.out.println(b||d); /*** 异或;当两个相同返回false,不同返回true*/System.out.println("***********************************************");System.out.println(a^b); System.out.println(a^c); System.out.println(b^c); System.out.println(b^d); /***非*返回的是相反的*/System.out.println("***********************************************");System.out.println(!a); System.out.println(!b); System.out.println(!c); System.out.println(!d); }}
三元运算符
格式
–(关系表达式)?表达式1:表达式2;
–如果条件为true,运算后的结果是表达式1;
–如果条件为false,运算后的结果是表达式2;
示例:
获取两个数中大数。
int x=3,y=4,z;
z = (x>y)?x:y;//z变量存储的就是两个数的大数。
代码演示
package com.yunsuanfu;public class Sanyuan {public static void main(String[] args) {// TODO Auto-generated method stubint x = 3;int y = 4;//int z = (x>y)?x:y;int z;if(x>y) {z = x;}else {z = y;}System.out.println(z);}}
键盘录入
- 键盘录入数据概述
我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,把数据改进为键盘录入,提高程序的灵活性。
- 如何实现键盘录入数据呢?(目前先记住使用)
- 导包(位置放到class定义的上面)——import java.util.Scanner;
- 创建对象——Scanner sc = new Scanner(System.in);
- 接收数据——int x = sc.nextInt();
代码演示
package com.demo;import java.util.Scanner;/** 引包的快捷键:Ctrl+shift+O* 为了提高程序的灵活性,我们把数据改为键盘录入* 如何实现键盘录入呢?目前使用JDK提供的Scanner.* 使用步骤,记住即可使用步骤A:导包import java.util.Scanner;类中的顺序:package > import > classB:创建对象Scanner sc = new Scanner(System.in);C:接受数据int i = sc.nextInt();*/public class ScannerDemo {public static void main(String[] args) {//创建键盘录入数据Scanner sc = new Scanner(System.in);//接受数据System.out.println("请录入一个整数:");int i = sc.nextInt();//输出数据System.out.println("i:"+i);}
}
键盘录入数据练习
- 键盘录入两个数据,并对这两个数据求和,输出其结果
- 键盘录入两个数据,获取这两个数据中的最大值
- 键盘录入两个数据,比较这两个数据是否相等
- 键盘录入三个数据,获取这三个数据中的最大值
1.键盘录入两个数据,并对这两个数据求和,输出其结果
package com.demo;import java.util.Scanner;/** 键盘录入两个数据,并对这两个数据求和,输出其结果* * 键盘录入* A:导包* B:创建对象* C:接受数据*/
public class ScannerTest {public static void main(String[] args) {// 创建对象Scanner sc = new Scanner(System.in);// 接收数据System.out.println("请输入第一个数据:");int a = sc.nextInt();System.out.println("请输入第二个数据");int b = sc.nextInt();// 对数据进行求和int sum = a + b;System.out.println("sum:" + sum);}
}
2.键盘录入两个数据,获取这两个数据中的最大值
package com.demo;import java.util.Scanner;/** 键盘录入两个数据,获取这两个数据中的最大值* * 键盘录入* A:导包* B:创建对象* C:接受数据*/
public class ScannerTest {public static void main(String[] args) {// 创建对象Scanner sc = new Scanner(System.in);// 接收数据System.out.println("请输入第一个数据:");int a = sc.nextInt();System.out.println("请输入第二个数据");int b = sc.nextInt();//获取这两个数据中的最大值int z;if(a>b) {z = a;}else {z = b;}System.out.println("z:" + z);}
}
3. 键盘录入两个数据,比较这两个数据是否相等
package com.demo;import java.util.Scanner;/** 键盘录入两个数据,比较这两个数据是否相等* * 键盘录入* A:导包* B:创建对象* C:接受数据*/
public class ScannerTest {public static void main(String[] args) {// 创建对象Scanner sc = new Scanner(System.in);// 接收数据System.out.println("请输入第一个数据:");int a = sc.nextInt();System.out.println("请输入第二个数据");int b = sc.nextInt();//获取这两个数据中的最大值boolean z;if(a==b) {z = true;}else {z = false;}System.out.println("z:" + z);}
}
4.键盘录入三个数据,获取这三个数据中的最大值
package com.demo;import java.util.Scanner;/** 键盘录入三个数据,获取这三个数据中的最大值* * 键盘录入* A:导包* B:创建对象* C:接受数据*/
public class ScannerTest3 {public static void main(String[] args) {// 创建对象Scanner sc = new Scanner(System.in);// 接收数据System.out.println("请输入第一个数据:");int a = sc.nextInt();System.out.println("请输入第二个数据");int b = sc.nextInt();System.out.println("请输入第三个数据");int c = sc.nextInt();//获取这三个数据中的最大值//ݵ����ֵint temp = (a > b ? a : b);int max = (temp > c ? temp : c);System.out.println("max:" + max);}
}
相关文章:
WPF Prism
WPF编程-Prism世有伯乐,然后有千里马。千里马常有,而伯乐不常有。一、背景 Winform和WPF1. WinForms和WPF技术架构:WinForms是基于传统的窗体和控件的技术,使用的是类似于VB6时代的设计理念。 WPF是基于XAML(可扩展应用程序标记语言)的技术,允许更灵活、高度可定制化的用…...
网络frozen
参考网页 https://blog.csdn.net/Orientliu96/article/details/104705912 device = torch.device("cuda" ) #Try to load modelsmodel = DGCNN(args) print(str(model)) model = model.to(device) save_model = torch.load(model.t7) model_dict = model.state_dict…...
谷歌 hackbar 不能使用的问题
谷歌 hackbar 不能使用的问题 下载 hackbar 插件:https://github.com/Mr-xn/hackbar2.1.3 解压文件,将其拖入 chrome 扩展程序中点击详情,点击下面来源的链接 会跳转到插件的安装位置,进入theme/js文件,打开hackbar-panel.js文件,将以下三处disable_hackbar()函数替换成i…...
改善员工绩效管理的 8 种最佳方法
企业如何改进绩效管理体系,才能获得最好的结果?请仔细阅读,找出答案… 人力资源部门对组织的成功起着至关重要的作用,组织的员工也是如此。更好的组织管理会带来更高的利润。人力资源部门的工作很大一部分就是规范绩效管理体系,营造员工能做出最好的工作、发挥最大能力的工…...
Unity读书系列《Unity3D游戏开发》——脚本(一)
文章目录 前言一、脚本模版及其拓展1、脚本模版2、拓展脚本模版 二、脚本的生命周期三、脚本的执行顺序四、脚本序列化1、序列化数据2、serializedObject3、监听部分元素修改事件 五、定时器与间隔定时器六、工作线程(多线程)总结 前言 脚本在Unity的重…...
vue3打包js内存溢出
第一步:npm install -g increase-memory-limit第二步:npm install increase-memory-limit —save-dev第三步:package.json文件中修改 "build:win32": "cross-env LIMIT=2048 increase-memory-limit BUILD_TARGET=win32 node .electron-vue/build.js",//添…...
Java基础语法——运算符与表达式
目录 Eclipse下载 安装 使用 运算符 键盘录入 Eclipse下载 安装 使用 Eclipse的概述(磨刀不误砍柴工)——是一个IDE(集成开发环境)Eclipse的特点描述(1)免费 (2)纯Java语言编写 (3)免安装 (…...
连通性1(Tarjan 理论版)
目录 一、无向图割点、桥、双连通分量 Tarjan 算法求割点和桥(割边) “割点”代码 边双和点双连通分量 边双连通分量 和 点双连通分量 的缩点 二、有向图强连通分量 1.有向图的弱连通与强连通 2.强连通分量 Kosaraju算法 Tarjan 算法(…...
数据库02_函数依赖,数据库范式,SQL语句关键字,数据库新技术---软考高级系统架构师009
1.首先我们来看这个,给定一个X,能确定一个Y那么就说,X确定Y,或者Y依赖x,那么 比如y = x * x 就是x确定y,或者y依赖于x 2.然后再来看图,那么左边的部分函数依赖,就是,通过A和B能决定C,那么如果A只用给就能决定C,那么就是部分函数依赖. 3.然后再来看,可以看到,A可以决定B,那么…...
王者荣耀入门技能树-解答
前言 前段时间写了一篇关于王者荣耀入门技能树的习题,今天来给大家解答一下。 职业 以下哪个不属于王者荣耀中的职业: 射手法师辅助亚瑟 这道题选:亚瑟 王者荣耀中有6大职业分类,分别是:坦克、战士、刺客、法师、…...
java基础学习 day37 (集合)
集合与数组的区别 长度:数组长度固定,一旦创建完成,就不能改变。集合长度可变,根据添加和删除元素,自动扩容或自动收缩,(添加几个元素就扩容多少,删除几个元素就收缩多少࿰…...
C语言:数组
往期文章 C语言:初识C语言C语言:分支语句和循环语句C语言:函数 目录往期文章前言1. 一维数组的创建和初始化1.1 数组的创建1.2 数组的初始化2. 一维数组的使用3. 一维数组在内存中的存储4. 二维数组的创建和初始化4.1 二维数组的创建4.2 二维…...
斐波那契数列的--------5种算法(又称“兔子数列”)
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:…...
【计算机网络(考研版)】第一站:计算机网络概述(二)
目录 四、OSI参考模型和TCP/IP模型 1.ISO/0SI参考模型 2.TCP/IP模型 3.OSI/RM参考模型和TCP/IP参考模型的区别和联系 4.五层教学模型 5.数据流动示意图 四、OSI参考模型和TCP/IP模型 前面我们已经讨论了体系结构的基木概念,在具体的实施中有两个重要的网络体系…...
Python内置包Tkinter的重要控件(下)
本文将接着介绍剩下的五个重要的控件,包括Canvas,Messagebox,Listbox,Checkbutton,Radiobutton。 目录 前言 控件 1. Canvas 2. Messagebox 3. Listbox 4. Radiobutton 5. Checkbutton 总结 前言 包括但不…...
(Java高级教程)第四章必备前端基础知识-第二节2:CSS属性
文章目录一:CSS属性一览表二:常用属性详解(1)字体属性(2)文本属性(3)背景属性一:CSS属性一览表 W3C:元素属性 A: align-content规定弹性容器内…...
听障人士亲述:我们在VRChat用手语交流,成员规模5000人
如果你在B站上搜索VRChat,排在前面的热门视频几乎都是与老外聊天的内容。除了练习语言、交文化流外,你还能在VRChat上遇到不少哇哇乱叫的小孩。作为一款VR社交应用,除了有趣的小游戏外,说话聊天也是VRChat关键的玩法之一。而有这么…...
设计一个70W在线人数的弹幕系统
背景: 直播业务中增加弹幕系统,支持单房间百万用户同时在线。 问题分析: 带宽压力: 假如说每3秒促达用户一次,那么每次内容至少需要有15条才能做到视觉无卡顿。15条弹幕http包头的大小将超过3k,那么每秒…...
一起自学SLAM算法:第9章-视觉SLAM系统
连载文章,长期更新,欢迎关注: 上一章介绍了以激光雷达做为数据输入的激光SLAM系统,激光雷达的优点在于数据稳定性好、测距精度高、扫描范围广,但缺点是价格昂贵、数据信息量低、安装部署位置不能有遮挡、雨天烟雾等环境…...
LeetCode 437. 路径总和 III
LeetCode 437. 路径总和 III 给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的ÿ…...
LinuxC—高级IO
高级IO 1 非阻塞IO/有限状态机编程 1.1 基本概念 定义 有限状态机(Finite State Machine) 缩写为 FSM,状态机有 3 个组成部分:状态、事件、动作。 状态:所有可能存在的状态。包括当前状态和条件满足后要迁移的状态。事件:也称为…...
WebSocket 入门:简易聊天室
大家好,我是前端西瓜哥,今天我们用 WebSocket 来实现一个简单的聊天室。 WebSocket 是一个应用层协议,有点类似 HTTP。但和 HTTP 不一样的是,它支持真正的全双工,即不仅客户端可以主动发消息给服务端,服务…...
Windows10添加WebDav地址时报错“输入的文件夹无效,请选择另一个”
一、问题描述在使用Windows10添加WebDav网络地址时,报错“输入的文件夹无效,请选择另一个”,如下图所示:二、问题分析这是由于Windows10的WebDav默认只支持https协议,没有支持http协议导致的。三、解决办法3.1、修改注…...
Cadence PCB仿真使用Allegro PCB SI生成串扰总结报告Crosstalk Summary Report及报告导读图文教程
🏡《Cadence 开发合集目录》 🏡《Cadence PCB 仿真宝典目录》 目录 1,概述2,生成报告3,报告导读4,总结1,概述 Crosstalk Summary Report是各种串扰问题的一个简要总结报告。本文简单介绍使用Allegro PCB SI生成Crosstalk Summary Report报告的方法,及其要点导读。…...
【5-卷积神经网络】北京大学TensorFlow2.0
课程地址:【北京大学】Tensorflow2.0_哔哩哔哩_bilibiliPython3.7和TensorFlow2.1六讲:神经网络计算:神经网络的计算过程,搭建第一个神经网络模型神经网络优化:神经网络的优化方法,掌握学习率、激活函数、损…...
C++初阶:vector类
文章目录1 vector介绍2 实现vector2.1 类的定义2.2 默认成员函数2.2.1 构造函数2.2.2 析构函数2.2.3 拷贝构造2.2.4 赋值重载2.3访问接口2.4 容量接口2.5 修改接口2.5.1 尾插尾删2.5.2 任意位置插入2.5.3 任意位置删除2.6 其他接口1 vector介绍 1 vector是表示可变大小数组的序…...
机器学习中软投票和硬投票的不同含义和理解
设置一个场景,比如对于今天音乐会韩红会出现的概率三个人三个观点 A:韩红出现的概率为47% B:韩红出现的概率为57% C:韩红出现的概率为97% 软投票:软投票会认为韩红出现的概率为1/3*(47%57%97%)67% 硬投票:…...
Linux系统之网络客户端工具
Linux系统之网络客户端工具一、Links工具1.Links工具介绍2.安装Links软件3.Links工具的使用4.打印网页源码输出5.打印url版本到标准格式输出二、wget工具1.wget工具介绍2.安装wget软件3.wget工具的使用三、curl工具1.curl工具的介绍2.curl的常用参数3.curl的基本使用四、scp工具…...
c++函数(2)
这里写自定义目录标题默认参数函数重载递归函数变量周期默认参数 可为形参指定默认值,如果在函数调用时,没有指定与形参对应的实参时,就自动使用默认值。 默认参数可简化复杂函数的调用。 默认参数在函数名第一次出现在程序中指定࿰…...
HackTheBox Stocker API滥用,CVE-2020-24815获取用户shell,目录遍历提权
靶机地址: https://app.hackthebox.com/machines/Stocker枚举 使用nmap枚举靶机 nmap -sC -sV 10.10.11.196机子开放了22,80端口,我们本地解析一下这个域名 echo "10.10.11.196 stocker.htb" >> /etc/hosts 去浏览器访问…...
Java线程池应用实例
线程池的学习基本概念好处应用场景ThreadPoolExecutor实例理解:执行流程自定义线程池4大核心参数测试demo结论:ExecutorService常用方法思考获取ExecutorService代码示例ScheduleExecutorService常用获取方式如下ScheduledExecutorService常用方法如下:代…...
数字签名技术
介绍数字签名 数字签名是一种用于确认数据的完整性、确认发送者身份的技术。 签名主要包含两个过程:做摘要、进行非对称加密。 做摘要:签名者使用消息摘要算法对消息做摘要;进行非对称加密,得到签名值:签名者使用私…...
WPF-3D图形
WPF-3D图形 WPF的3D功能可以在不编写任何c#代码的情况下进行绘制,只需要使用xaml即可完成3D图形的渲染。本文主要讲述了WPF-3D中的关键概念, 以及常用到的命中测试、2d控件如何在3D对象中进行渲染,除此之外,还演示了如何导入外部…...
返回值的理解
前言 我们写的函数是怎么返回的,该如何返回一个临时变量,临时变量不是出栈就销毁了吗,为什么可以传递给调用方?返回对象的大小对使用的方式有影响吗?本文将带你探究这些问题,阅读本文需要对函数栈帧有一定…...
前端布局神器display:flex
Flexbox,一种CSS3的布局模式,也叫做弹性盒子模型,用来为盒装模型提供最大的灵活性。首先举一个栗子,之前我们是这样实现一个div盒子水平垂直居中的。在知道对象高宽的情况下,对居中元素绝对百分比定位,然后…...
【Typescript学习】使用 React 和 TypeScript 构建web应用(三)所有组件
教程来自freecodeCamp:【英字】使用 React 和 TypeScript 构建应用程序 跟做,仅记录用 其他资料:https://www.freecodecamp.org/chinese/news/learn-typescript-beginners-guide/ 第三天 以下是视频(0:40-0:60) 的内容 目录第三天1 创建Todo…...
7.3 矩阵范数
定义 向量有范数,矩阵也有范数,定义和向量范数类似,不过多了一条要求。它的定义如下: 正定性positivity,∥A∥≥0\parallel A\parallel\ge 0∥A∥≥0,只有A0A0A0时才取等号;非负齐次性homogeneity或scalin…...
Jetpack架构组件库:Hilt
Hilt Hilt 是基于 Dagger2 的依赖注入框架,Google团队将其专门为Android开发打造了一种纯注解的使用方式,相比 Dagger2 而言使用起来更加简单。 依赖注入框架的主要作用就是控制反转(IOC, Inversion of Control), 那么什么是控制…...
InstanceNorm LayerNorm
InstanceNorm && LayerNorm author: SUFEHeisenberg date: 2023/01/26 先说结论: 将Transformer类比于RNN:一个token就是一层layer,对一整句不如token有意义原生Bert代码或huggingface中用的都是InstanceNorm instead of LayerNormÿ…...
数据结构---堆
堆 定义 基本操作 建堆 堆排序 优先队列 一、堆的定义: 堆必须是一个完全二叉树 还得满足堆序性 什么是完全二叉树呢? 完全二叉树只允许最后一行不为满 且最后一行必须从左到右排序 最后一行元素之间不可有间隔,中间不可有空缺 如下几棵树…...
3小时精通opencv(五) 利用TrackBar进行颜色检测
3小时精通opencv(五) 利用TrackBar进行颜色检测 参考视频资源:3h精通Opencv-Python 本章内容介绍如何利用TrackBar调节色域, 手动提取到我们需要的颜色 文章目录3小时精通opencv(五) 利用TrackBar进行颜色检测创建Trackbar色彩检测创建Trackbar 在opencv中使用createTrackbar函…...
学习记录673@项目管理之进度管理案例
本文主要是进度管理之关键链路法的案例。 案例 Perfect 项目的建设方要求必须按合同规定的期限交付系统,承建方项目经理李某决定严格执行项目进度管理,以保证项目按期完成。他决定使用关键路径法来编制项目进度网络图。在对工作分解结构进行认真分析后&…...
【设计模式】结构型模式·组合模式
学习汇总入口【23种设计模式】学习汇总(数万字讲解体系思维导图) 写作不易,如果您觉得写的不错,欢迎给博主来一波点赞、收藏~让博主更有动力吧! 一.概述 又称为部分整体模式,用于把一组相似的对象当作一个单一的对象。组合模式依…...
Vue-Router详解
1、前端路由的发展历程 1.1、认识前端路由 路由其实是网络工程中的一个术语: 在架构一个网络时,非常重要的两个设备就是路由器和交换机。当然,目前在我们生活中路由器也是越来越被大家所熟知,因为我们生活中都会用到路由器&…...
Eclipse中的Build Path
Eclipse中的Build Path简介如果修改了Build Path中的中的JRE版本,记得还需要同步修改Java编译器的版本,如下图红框所示简介 Build Path是Java工程包含的资源属性合集,用来管理和配置此Java工程中【除当前工程自身代码以外的其他资源】的引用…...
Python与Matlab混合编程案例
前言因为项目需要,需要批处理很多Matlab的.m文件,从每个文件中提取结果合并到一个文件中。 很明显,如果手工统计,几百个文件会累死的。 因此立即想到了Python在批处理方面的优势,因此就在网上找了相关资料,…...
stack、queue、priority_queue
容器适配器 适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口。 其中stack和queue都是容器适配器,其中stack可以封装vector、list以及我们…...
高通平台开发系列讲解(GPS篇)gpsONE 系统架构
文章目录 一、系统架构图二、gpsONE系统组成三、gpsONE交互流程沉淀、分享、成长,让自己和他人都能有所收获!😄 📢高通的定位系统模块,名称叫gpsONE。 一、系统架构图 二、gpsONE系统组成 GPS系统架构可以分为六个部分: APP层Framework Client端(LocationManager API…...
zkMove——针对Move合约生态的zkVM
1. 引言 Move为不同于Solidity的,开源的安全的智能合约开发语言,最早由Facebook为Diem链创造开发。不过,Move本身设计为与平台无关的语言,具有通用的库、工具,并使得采用完全不同数据模型和执行模型的链的开发者社区都…...
贪心算法的题目
每一步都做出一个局部最优的选择,最终的结果就是全局最优 只有一部分问题才能用贪心算法(严格来讲,一个问题能不能用贪心算法需要证明的) 2022.8.30 蔚来笔试题: 有a个y,b个o,c个u,用这些字母拼成一个字符串…...
线程控制--Linux
文章目录线程理解线程的优点与缺点进程的多个线程共享线程控制线程创建线程终止线程等待线程分离总结线程理解 谈及线程,就不得不谈起进程与线程的关系了。学习完前面有关进程的知识,之前我们对进程的定义是:内核数据结构代码和数据。但是今…...
17 | 如何做好面试复盘?将经验提升为能力
前言 前言:面试是最好的查漏补缺机会,做好面试复盘又是十分的重要。 文章目录前言一. 关于复盘1. 什么是复盘(What)2. 复盘的目的(Why)3. 什么时候需要复盘(When)4. 怎么进行复盘&am…...
数据结构-树
1. 二叉树遍历 #include <stdbool.h> #include "stdio.h" #include "stdlib.h"typedef struct TNode *Position; typedef Position BinTree; // 二叉树类型 typedef char ElementType;// 树结点定义 struct TNode {ElementType Data; // 结点数据Bin…...
Python3 循环语句
本章节将为大家介绍 Python 循环语句的使用。 Python 中的循环语句有 for 和 while。 Python 循环语句的控制结构图如下所示: while 循环 Python 中 while 语句的一般形式: while 判断条件(condition):执行语句(statements)…… 执行流程…...
时序数据处理中的拟合问题
对于深度学习或机器学习模型而言,我们不仅要求它对训练数据集有很好的拟合(训练误差),同时也希望它可以对未知数据集(测试集)有很好的拟合结果(泛化能力),所产生的测试误差被称为泛化误差。度量泛化能力的好坏,最直观的表现就是模型的过拟合(overfitting)和欠拟合(…...
[数据结构基础]排序算法第一弹 -- 直接插入排序和希尔排序
目录 一. 排序的概念及分类 1.1 排序的概念 1.2 常见的排序算法 二. 直接插入排序 2.1 直接插入排序的实现逻辑 2.2 直接插入排序的实现代码 2.3 直接插入排序的时间复杂度分析 三. 希尔排序 3.1 希尔排序的实现逻辑 3.2 希尔排序实现代码 3.3 希尔排序的效率测试 …...
关于OSPF报文学习
目录 一.OSPF学习补充 (1)OSPF报文头部 (2)ospf建立邻居关系 1.Hello报文——建立邻居关系 2.hello报文头部 (3)OSPF建立邻接关系 1.发送DD报文 2.DD报文头部 (4)关于DR,BD…...
Scala的函数至简原则
对于scala语言来说,函数的至简原则是它的一大特色。下面让我们一起来看看分别有什么吧! 函数至简原则:能省则省! 初始函数 def test(name:String):String{return name }1、return可以省略,Scala会使用函数体的最后一…...
天星金融普及个人养老金制度,共筑老龄友好型社会
在人口老龄化的浪潮中,我国正面临着日益严峻的养老挑战。据国家卫健委数据显示,预计到2035年,我国60岁及以上人口占总人口的比例将超过30%,构建老龄友好型社会已成为国家发展的重要任务。在这一背景下,个人养老金制度的…...
大语言模型——涌现能力
在现有文献中,大语言模型的涌现能力被非形式化定义为在小型模型中不存在但在大模型中出现的能力”,具体是指当模型扩展到一定规模时,模型的特定任务性能突然出现显著跃升的趋势,远超过随机水平。类比而言,这种性能涌现模式与物理学中的相变现象有一定程度的相似,但是仍然…...
【产品设计】B端产品权限设计~功能权限设计篇
对于B端设计而言,良好的权限设计架构是支持其复杂业务的基础和关键。 一、什么是权限管理 权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源。 简而言之,用户登录系统后࿰…...
六个月滴滴实习:轻松、舒心又高薪!
不久前,一位在滴滴后端研发部门实习了六个月的小伙伴在牛客网上分享了他的实习体验, 作者详细描述了他在滴滴的实习生活。 从他的叙述中,我们可以感受到与其他互联网公司相比,滴滴的工作环境显得相对轻松和舒适。 他提到&#x…...