- 博客(272)
- 资源 (27)
- 问答 (3)
- 收藏
- 关注
转载 C++中五花八门的初始化
定义于任何函数体之外的变量会被初始化为0,定义在函数体内部的内置类型变量将不被初始化(uninitialized),一个未被初始化的内置类型变量的值时未定义的,如果试图拷贝或以其他形式访问此类值将引发错误。总的来说,圆括号是通过调用vector的构造函数进行初始化的,如果使用了花括号那么初始化过程会尽可能会把花括号内的值当做元素初始值的列表来处理。前面提到C++11支持所有类型的初始化,对于类类型而言,虽然我们使用列表初始化它会自动调用匹配的构造函数,但是我们也能显式指定接受初始化列表的构造函数。
2024-04-10 09:33:14 17
转载 C++ const 和 constexpr 的区别
C++ 11标准中,const 用于为修饰的变量添加“只读”属性而 constexpr关键字则用于指明其后是一个常量,编译器在编译程序时可以顺带将其结果计算出来,而无需等到程序运行阶段,这样的优化极大地提高了程序的执行效率,本文重点介绍C++ const与constexpr区别介绍,一起看看吧。所谓常量表达式,指的就是由多个(≥1)常量组成的表达式。换句话说,如果表达式中的成员都是常量,那么该表达式就是一个常量表达式。这也意味着,常量表达式一旦确定,其值将无法修改。实际开发中,我们经常会用到常量表达式。以定
2024-04-07 14:09:45 20
原创 Sublime查看ANSI编码文档乱码问题
选择插件包:ConvertToUTF8或者GBK,我试了第一个插件包不行,安装GBK插件包后OK。原因为没有安装对应的解码插件。
2024-03-14 18:23:47 542
转载 这个代码挑战赛火爆外网,十亿行文本处理,冠军只用了1.5s
那么有没有办法可以移除stringAt调用呢?分析代码可以看到将站名生成String对象,是为了在HashMap中存储不同气象站的统计结果数据(作为key)。而HashMap的key的作用是计算hash值判断两个key是否相等如果要避免使用stringAt调用,那么就不得不抛弃HashMap,来实现自定义的哈希表结构。实际上,构造一个指定大小的采用开放地址法指定大小:不需要考虑容量扩张,因为比赛的气象站大小已经确定。
2024-02-27 16:48:12 345
原创 Java基础:值传递和引用传递
传递的并不是实际的对象,而是对象的引用,外部对引用对象的改变也会反映到源对象上,因为引用传递的时候,实际上是将实参的地址值复制一份给形参。传递对象的一个副本,即使副本被改变,也不会影响源对象,因为值传递的时候,实际上是将实参的值复制一份给形参。在值传递过程中,方法声明的参数和方法调用的参数是两个不同的参数,他们分别指向结果相同,但是完全不同的对象。指向同一个对象,当在方法内修改对象,会导致修改的内容被传递到方法外,处理类似于C++中方法传递的引用参数。
2024-02-12 17:42:31 373
原创 C++ 位运算
任何信息在计算机中都是采用二进制表示的,数据在计算机中是以补码形式存储的,位运算就是直接对整数在内存中的二进制位进行运算。由于位运算直接对内存数据进行操作,不需要转换成十进制,因此处理速度非常快。
2024-02-10 22:24:24 1221
原创 设计模式:工厂方法模式
工厂模式属于创建型模式,也被称为多态工厂模式,它在创建对象时提供了一种封装机制,将实际创建对象的代码与使用代码分离,有子类决定要实例化的产品是哪一个,把产品的实例化推迟到子类。
2024-01-27 22:38:58 798
原创 设计模式:简单工厂模式
工厂设计模式属于创建型模式,它提供了一种创建对象的最佳方式。工厂模式提供了一种创建对象的方式,而无需指定要创建的具体类。工厂模式属于创建型模式,它在创建对象时提供了一种封装机制,将实际创建对象的代码与使用代码分离。面相对象编程中,万物皆对象。每个对象如果都通过关键字new创建,则会导致对象与其调用者耦合严重。假如更换要new的对象,则所有new对象的地方都需要改变代码,这显然违背了“开-闭原则”。
2024-01-27 15:10:11 733
原创 设计模式:简介及基本原则
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。
2024-01-27 12:13:42 1004
原创 Error occurred during initialization of boot layerjava.lang.module.FindException: Module javafx.web
我遇到情况是“PATH_TO_FX”的配置,配置为原javafx的sdk,但是sdk已经删除了,所以报错。按照新的JavaFX包路径配置即可。
2024-01-25 19:04:14 437
原创 位(bit)、字节(byte)的概念
位(bit)是计算机中最基本的概念。位是计算机内部数据储存的最小单位,它只能表示两种状态:0或1。当提到“位”时,通常指的是二进制位,即单个的二进制数值。在计算机中,由于只有逻辑0和逻辑1的存在,因此很多东西、动作、数字都要表示为一串二进制的字码例如: 1001 0000 1101等等。其中每一个逻辑0或者1便是一个位。例如这个例子里的1000 1110共有八个位,它的英文名字叫(bit),是计算机中最基本的单位。
2024-01-18 19:56:13 431
原创 C++编码规范:JSF-AV(未完待续)
同时,该部分有时还包含大量其它航空标准的内容,例如“只有符合DO-178 A级或SEAL 1级认证的C/C++ 库函数可以在安全攸关(SEAL 1)的代码中使用”。这一点是与其它编程规范完全不同的,它体现了该规范作为洛马内部编程要求的实操性。该编程规范旨在为C++程序员提供指导,使其编写代码都具有良好的编程风格并经过相应的验证,从而保证代码安全性、可靠性、可测试性和可维护性。该编程规范在编写时借鉴了MISRA C 安全编程规范的相关内容,并在其之上增加了针对继承、模板和命名空间等C++特性的编程规范。
2024-01-13 09:29:04 964
原创 Java多线程:创建多线程的三种方式
在Java中,有三种方式创建多线程,继承类Thread,继承接口Runnable,继承接口Callable。其中Thread和Runnable需要重写方法run,方法run没有返回值;Callable需要重写方法call,方法call可以返回值。
2024-01-12 23:04:37 503
原创 Java多线程:Lock锁(未完待续)
在Java中,Lock是一个接口,它提供了比synchronized关键字更高级的线程同步机制。使用Lock接口可以创建更复杂和灵活的同步结构。Lock接口的常用实现类有ReentrantLock和ReentrantReadWriteLock,它们提供了可重入的互斥锁和读写锁。在需要进行同步的代码块中,通过调用`lock()`方法来获取锁。
2024-01-11 17:50:22 402
原创 C++ stoi函数,字符串转整数
通过调用stoi函数将字符串转换为整数。第一个示例将字符串"12345"转换为整数12345,第二个示例将字符串"1010"按二进制转换为整数10。第三个示例中,由于字符串"123abc"中包含无效字符"a",转换结束的位置为3,所以只将前面的数字"123"转换为整数123。- idx:可选参数,用于存储转换结束的位置,即第一个无效字符的位置。stoi函数是C++标准库中的一个函数,用于将字符串转换为整数。- base:可选参数,指定转换时使用的进制,默认为10进制。- str:要转换的字符串。
2024-01-06 22:49:53 780
原创 Java 序列化
比如 RMI(remote method invoke, 即远程方法调用),传入的参数或返回的对象都是可序列化的,否则会出错;Java 提供了对象序列化的机制,将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说,对象的类型信息、对象的数据,还有对象中的数据类型可以用来在内存中新建对象。整个过程都是 Java 虚拟机(JVM)独立的,也就是说,在一个平台上序列化的对象可以在另一个完全不同的平台上反序列化该对象。
2024-01-03 19:58:11 956
原创 IDEA 控制台中文乱码问题解决方法(UTF-8 编码)
2:将 vm option 参数改为: -Dfile.encoding=utf-8。无论 web 项目还是普通 Java 项目,都是在菜单栏找到 run --> Edit Configrations --> modify options,并设置 vm option 为 "-Dfile.encoding=utf-8"。3:点击 help --> Edit Custom VM Options…添加 "-Dfile.encoding=UTF-8"设置 IDEA 编码格式。
2024-01-03 19:51:24 718
原创 sublime text 打开 txt 文档乱码问题
对于 windows 系统使用系统自带的 txt 编辑工具,默认打开和保存文件的文件的格式是 GBK 或者 GB2312,而 sublime 默认仅支持 utf-8,所以当从 windows 系统拷贝文件在 mac 上浏览有时候会出现乱码的问题,这时候就需要安装插件使 submile 对这两种编码格式进行支持。步骤:按键 Ctrl+Shift+P -> 输入 IP -> 选择 Package Control: Install Package -> 输入 ConvertToUTF8 -> 回车。
2024-01-03 19:49:08 858
原创 JavaFX:MVC模式学习01-使用PropertyValueFactory将模型与视图绑定
PropertyValueFactory类是JavaFX在使用MVC模式绑定数据时,要注意模型中属性与视图中列的绑定。在前面的例子中,Person类是TableView视图绑定的列表的项(items),String和LocalDate是TableColumn中项数据的类型(firstName、lastName是StringProperty,birthDate是ObjectProperty)。Person类必须是public,“First Name”是在TableView中显示的表头内容。
2023-12-31 15:37:50 957
原创 Java:时间操作
在Java中,java.time.temporal.ChronoUnit是用于在日期和时间单位之间进行计算和操作的枚举类型。然而,即使某些API在Java中被标记为过时(deprecated),它们仍然可以正常使用。尽管java.time.temporal.ChronoUnit在某些情况下被标记为过时,但Java 8引入的java.time包提供了其他替代方法来执行日期和时间单位之间的操作。
2023-12-29 12:26:46 384
原创 JavaFX:控件Group。
group组件是一个容器组件,它不对其子组件应用特殊布局。所有子组件(节点)都位于0,0处。JavaFX组组件通常用于将一些效果或转换应用于一组控件(作为一个组)。如果需要对组内的子级进行一些布局,请将它们嵌套在布局组件内,然后将布局组件添加到组中。Group可以管理一组节点Group可以对管理的节点进行增删改查的操作Group可以管理节点的属性。
2023-12-28 17:31:08 413
原创 JavaFX:MenuItem触发鼠标事件
菜单项控件MenuItem使用枚举ActionEvent.ACTION触发事件。下面分别使用方法setOnAction和方法addEventHandler注册菜单项事件。在JavaFX中,菜单是控件Menu,菜单项是MenuItem,不同于按钮控件Button,控件Button可以使用枚举MouseEvent.
2023-12-27 15:31:56 412
原创 C++设计模式:单例模式(饿汉式、懒汉式)
由于在定义静态变量的时候实例化单例类,因此在类加载的时候就已经创建了单例对象,可确保单例对象的唯一性。
2023-12-25 23:05:48 882
原创 JavaFX:Observable和ObservableValue的事件处理(invalidated和changed),Observable***集合处理Invalidated事件和***Change
JavaFX的观察者监听事件。
2023-12-22 19:45:15 398
转载 Google Java编程风格规范
本文档作为 Google 的 Java™ 编程语言源代码编码标准的完整定义。当且仅当它遵守此处的规则时,Java 源文件才被描述为Google 风格。与其它的编程风格指南一样,这里所讨论的不仅仅是编码格式美不美观的问题, 同时也讨论一些约定及编码标准。然而,这份文档主要侧重于我们所普遍遵循的规则, 对于那些不是明确强制要求的,我们尽量避免提供意见。每个Javadoc块都以一个简短的摘要片段开始。这个片段非常重要:它是文本中唯一出现在某些上下文中的部分,比如类和方法的索引。
2023-12-22 15:11:57 958
原创 JavaFX:Initializable接口,JavaFX加载fxml文件的控件初始化
fxml文件中的JavaFX控件在Java文件中绑定,在Java类的构造函数中还没有初始化,所有的控件还都是null,但是Java类继承了Initializable接口,则在构造函数之后自动调用Initializable接口的方法,此时JavaFX控件已经初始化,可以进行设置了。JavaFX的窗体文件是fxml格式的xml文件。JavaFX通过FXMLLoader加载fxml文件,并将其进行显示。
2023-12-19 17:01:06 580
原创 Qt窗体、控件常用属性设置
QDesktopWidget 提供了详细的位置信息,其能够自动返回窗口在用户窗口的位置和应用程序窗口的位置Qt5开始,QDesktopWidget官方不建议使用,改为QScreen。Qt 6.0 及之后版本,QDesktopWidget 已从QtWidgets 模块中被彻底移除。如果是多屏幕,其每个屏幕的是不一样的,起始坐标不同,第一个屏幕的起始坐标是(0, 0),第二个屏幕的起始坐标是(1920, 0)。
2023-12-19 12:20:52 445
原创 error: C2039: “qt_metacast“: 不是 “***“ 的成员
error C2039: "qt_metacast": 不是 "radartrack::Base_track_data" 的成员最近在使用Qt开发,自定义的数据类在继承数据抽象类和QObject类时总是报“qt_metacast 不是不是 "radartrack::Base_track_data" 的成员”。
2023-12-18 20:03:57 562
转载 Qt QStandardItemModel用法(超级详细)
本实例的主窗口从 QMainWindow 继承而来,中间的 TableView 和 PlainTextEdit 组件采用水平分割条布局。在 Action 编辑器中创建如图 2 所示的一些 Action,并由 Action 创建主工具栏上的按钮,下方的状态栏设置了几个 QLabel 组件,显示当前文件名称、当前单元格行号、列号,以及相应内容。图 2 实例中创建的 Action#define FixedColumnCount 6 //文件固定 6 列//当前文件//当前单元格行列号。
2023-12-17 23:42:16 1332
Java并发编程实战 2nd
2018-10-19
Java高并发编程详解
2018-10-19
Java模式设计
2017-10-29
Expert_One-on-One_J2EE_Development_without_EJB中文版 part10
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版 part9
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版 part8
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版 part7
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版 part6
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版 part5
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版 part4
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版 part3
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版 part2
2009-02-11
Expert_One-on-One_J2EE_Development_without_EJB中文版
2009-02-11
c#本质论(英文版)
2008-09-22
QtCreator创建工程后,添加新文件不显示的问题
2022-07-13
Pyside6:子线程运行的问题
2022-01-16
Model-View模型中如何如何选择显示部分数据
2021-10-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人