求职日记-2+3

本文分享了Java初级开发岗位的面试及笔试经验,涵盖SpringBoot注解、Java数据类型、值传递与引用传递、抽象类、线程池、Object方法、HashMap构造、MySQL事务等知识点,同时提供了面试反馈和自我提升建议。

今天总结的是昨天与今天的面试以及笔试经验,先大概说一下两天的面试情况,昨天面试的java初级开发岗位,没有笔试,而且 因为java初级开发岗位已经招满所以感觉面试官问的东西也比较随意,不过也是有收获的。今天经过了笔试和面试,笔试方面基础部分需要加强的会列在下面,面试部分。。线程方面个人觉得还行,部分回答的惨不忍睹,,继续加油吧,接下来把遇到的问题列举一下并扩散下知识范围,争取不会在同样的问题上出问题

1.简单介绍一下使用过的Spring Boot的一些注解

这个问题虽然回答出来了,不过有个问题需要注意一下,面试官问了一个预加载的注解,这个我没有答出来,在之后我查了一下,实际上是实现一个CommandLineRunner 接口,这样的话便可以在程序启动前在run方法中完成数据预加载或者其他的工作。其中order注解,及其value值表示预加载顺序。

@Component
@Order(value=1)
public class Runner1 implements CommandLineRunner {

    @Override
    public void run(String... args) throws Exception {
       //方法
    }

}
2.java的几种基本数据类型

其实这样有一个技巧,我觉得应该从低字节向高字节说,不然的话很容易乱或者丢。另外char类型的字节数和我们使用的字符集有关系,一般是2个字节。

3.java 方法中的传递参数是值传递还是引用传递

java中只有值传递,在传递参数的时候传递的实际上是实际参数的引用地址的复制,如果是直接将引用传递过来的话,下面这段代码的输出就不该如此

public static void main(String[] args) {
   ParamTest pt = new ParamTest();

   User hollis = new User();
   hollis.setName("Hollis");
   hollis.setGender("Male");
   pt.pass(hollis);
   System.out.println("print in main , user is " + hollis);
}

public void pass(User user) {
   user = new User();
   user.setName("hollischuang");
   user.setGender("Male");
   System.out.println("print in pass , user is " + user);
}

print in pass , user is User{name=‘hollischuang’, gender=‘Male’}
print in main , user is User{name=‘Hollis’, gender=‘Male’}

值传递和引用传递的区别即是,一个是复制一份过来,一个是直接将引用传递过来。
具体可以详细看这篇,这篇说的非同通透程序员小灰的博客

4.abstract类的问题

这方面的是笔试题比较多,选择题上我不确定的比较多,明天或者后天会单独写一篇出来,并贴上我练习的笔试题。

5.在创建子类的对象的时候,会先执行父类的构造方法,再执行子类的构造方法。
6.线程池的相关问题,四种线程池得清楚,current工具包得去了解使用。
7.Object的方法有哪些,hashcode与equal()的关系。
8. hashmap的key的构造

haspMap我会在明后天看一下源码,把hashMap的构造弄熟,向外发散的话也就包括collection以及map的
相关数据结构都得弄清楚

9.mysql没有事务这个说法,正确么

先弄清楚mysql事务的有关知识啦。

10.关于linux的相关指令,熟悉一下,java封装继承多态这些特性要会用系统的语言去描述。java面对对象编程也是。

总结

总的来说,收获有不少,但是其实目前应该以学习者的态度面对面试,先不要觉得丢脸,最好能和面试官聊一下,了解面试官作为面试官对面试者的一些看法。今天最后其实可以问一下面试官,如果更深一点他会问哪些,这样会好很多,可以学习很多。
以上的问题我会在明后两天再写一个文章描述,解释,记录一下。

(base) straw@straw-ASUS-TUF-Gaming-F15-FX507VV-FX507VV:~/catkin_ws$ catkin_make Base path: /home/straw/catkin_ws Source space: /home/straw/catkin_ws/src Build space: /home/straw/catkin_ws/build Devel space: /home/straw/catkin_ws/devel Install space: /home/straw/catkin_ws/install #### #### Running command: "cmake /home/straw/catkin_ws/src -DCATKIN_DEVEL_PREFIX=/home/straw/catkin_ws/devel -DCMAKE_INSTALL_PREFIX=/home/straw/catkin_ws/install -G Unix Makefiles" in "/home/straw/catkin_ws/build" #### -- Using CATKIN_DEVEL_PREFIX: /home/straw/catkin_ws/devel -- Using CMAKE_PREFIX_PATH: /opt/ros/melodic -- This workspace overlays: /opt/ros/melodic -- Found PythonInterp: /usr/bin/python3 (found suitable version "3.6.9", minimum required is "2") -- Using PYTHON_EXECUTABLE: /usr/bin/python3 -- Using Debian Python package layout -- Using empy: /usr/bin/empy -- Using CATKIN_ENABLE_TESTING: ON -- Call enable_testing() -- Using CATKIN_TEST_RESULTS_DIR: /home/straw/catkin_ws/build/test_results -- Found gtest sources under '/usr/src/googletest': gtests will be built -- Found gmock sources under '/usr/src/googletest': gmock will be built -- Found PythonInterp: /usr/bin/python3 (found version "3.6.9") -- Using Python nosetests: /usr/bin/nosetests-2.7 -- catkin 0.7.29 -- BUILD_SHARED_LIBS is on -- BUILD_SHARED_LIBS is on -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- ~~ traversing 13 packages in topological order: -- ~~ - jsk_recognition (metapackage) -- ~~ - sound_classification -- ~~ - audio_to_spectrogram -- ~~ - jsk_recognition_msgs -- ~~ - my_package -- ~~ - checkerboard_detector -- ~~ - jsk_recognition_utils -- ~~ - imagesift -- ~~ - jsk_perception -- ~~ - jsk_pcl_ros_utils -- ~~ - jsk_pcl_ros -- ~~ - resized_image_transport -- ~~ - yolo_ros -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- +++ processing catkin metapackage: 'jsk_recognition' -- ==> add_subdirectory(jsk_recognition-master/jsk_recognition) -- +++ processing catkin package: 'sound_cla
03-22
### Catkin_make 构建过程中的常见问题及日志分析 在使用 `catkin_make` 进行 ROS Melodic 的构建过程中,可能会遇到多种问题。以下是常见的构建问题及其解决方案: #### 1. **找不到 toplevel.make 文件** 当执行 `catkin_make` 命令时,如果提示无法找到 `toplevel.make` 文件,则可能是由于源码目录下的 `CMakeLists.txt` 被删除或者未正确初始化工作空间。 解决方法如下: - 如果 `src` 目录下缺少 `CMakeLists.txt` 文件,可以通过运行以下命令重新创建并链接到默认的 `toplevel.cmake` 文件[^5]: ```bash cd ~/catkin_ws/src catkin_init_workspace ``` #### 2. **多线程/多核编译设置错误** 为了提高编译效率,可以在 `catkin_make` 中加入 `-jN` 参数来启用多线程或多核编译。然而,如果不合理地增加核心数可能导致系统资源耗尽甚至崩溃。 推荐做法是根据计算机的核心数量调整参数值。例如,对于四核处理器可尝试以下命令[^3]: ```bash catkin_make -j4 ``` 此操作实际上会被分解成两步执行:先调用 `cmake_check_build_system` 检查构建系统状态;再通过 `make -j4` 实现具体目标的并发处理。 #### 3. **依赖包缺失引发的错误** 有时因某些必要的软件包尚未安装而中断整个构建流程。这种情况下应该仔细阅读终端打印出来的错误消息,并按照指示补充相应的库文件或工具链版本。 比如部署像 Google Cartographer 这样的复杂项目时就需要额外注意其特定需求[^2]。确保所有必需组件都已就绪后再启动正式组装程序。 另外值得注意的是,默认路径可能不具有写权限从而阻碍正常进程推进。此时需赋予适当的操作许可权限给定脚本文件以便顺利开展后续动作[^4]: ```bash sudo chmod +x /opt/ros/melodic/bin/catkin_make ``` 最后关于查看详细的构建日记记录方面,一般可以直接观察标准输出流上的即时反馈信息即可获取足够的调试线索。当然也可以重定向这些数据存储至单独的日志文档里供离线审查之用: ```bash catkin_make &> build.log ``` 以上就是围绕着 `catkin_make` 在 ROS Melodic 平台之上可能出现的一些典型状况以及对应的处置策略概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值