第三周。上周欠下了 赶紧补上,糟糕了 还有第四篇也得加紧了 难受。

1.Algorithm:每周至少做一个 leetcode 的算法题
2.Review:阅读并点评至少一篇英文技术文章
3.Tip:学习至少一个技术技巧
4.Share:分享一篇有观点和思考的技术文章

以下是各项的情况:

Algorithm

链接:[LeetCode-09]-Palindrome Number

首先排除负数,然后利用取整和取余来获得我们想要的数字,比如 1221 这个数字,如果 计算 1221 / 1000, 则可得首位1, 如果 1221 % 10, 则可得到末尾1,进行比较,然后把中间的22取出继续比较。比较特殊的是1000211,也是一样的,第一遍首尾部1相等,继续循环 中间的00021,取出首位置的时候,除以的是10000,所以取出的是0,尾位置取出的是1,二者不同,直接返回false。

class Solution {
public boolean isPalindrome(int x) {
if(x<0) return false;
int div = 1;
while(x/div>=10) div *= 10;
while(x>0){
int left = x / div;
int right = x % 10;
if (left != right) return false;
x = (x % div) / 10;
div /= 100;
}
return true;
}
}

Review

分享   关系数据库如何工作

东西很丰富 就记下脉络和思维导图

内容

Tip

  Spring常用注解 :

    1. @Component  (创建工具类的时候)

      1.1@Repository   仓库(dao层)

       1.2@Service      服务(service层)

      1.3@Controller控制调节(表现层)

      上面三个注解都是@Component的衍生物,是更细的分层

      用法和作用和@Component 是完全一样的,只是各有各使用的地方

    2.给对象赋值

      2.1@Autowired   自动

@Autowired(required = false)
private Integer id; @Autowired
private String name;

      @Autowired  引用容器中的另一个对象,来给成员属性赋值

      1.它寻找的原则是:先根据数据类型去容器里面找,如果找不到或有多个这样的数据类型

        它就会根据成员变量的字段名去找. 如果都不适配,那就报错!

      2.它后面括号可以设置required参数,默认值是true  表示找不到就报错

        写false  表示找不到也不报错    括号是写不写是可选的

      注意:在容器里给对象赋的值,只有使用ac.getBean(“account”) 这样获得的对象,才能拥有容器里面的值,  直接 new Account()  得到的对象属性是空的

    

      2.2@Qualifier   初筛选

          @Qualifier必须结合@Autowired使用

@Autowired

@Qualifier(“aa”)
private Integer id;

          就写在@Autowired 和 成员属性 的中间  括号里指定一个名称, 它表示只根据这个名称去容器里面去找,找到的那个名称的值 就用来给成员变量赋值

            在@Autowired下设置了@Qualifier注解后,它只只只根据@Qualifier()参数里的那个名称去容器中寻找,找不到就报错,不再找别的  假如@Qualifier(“aa”)  容器里没id=”aa” 的就报错!!!

      2.3@Resource

l         实现效果与@Autowire一样。

          注意:  区别:resource 是 不能跟Qualifier 结合使用的,结合了也没用!

      2.4@Value

          无论是@Resource还是@Autowired都是引用容器中的对象注入进来。

          对于简单类型可以直接通过@Value赋值.(较少)

    3.spring对象范围注解

          @scope(“singleton”)   创建单例对象

          @scope(“prototype”)   创建多例对象

    4.spring生命周期注解 

        4.1. @PostConstruct()

        在任意一个方法的上面打上这个注解,只要对象一创建,这个方法就会立即执行

        4.2. @PreDestroy(只对单例有效)

        在任意一个方法的上面打上这个注解,只要容器被销毁的前一刻,这个方法就会被执行

        4.3. @Lazy

        在类的上方加了这个注解,在创建容器的时候,就不会再自动创建单例对象了

        只有真正需要使用到对象的时候,才会创建对象!  和多例对象一样了!

    5.spring零配置

        5.1@Configuration

            在一个类(通常是Configuration)的上面标上这个注解,就相当于把这个类变成了bean.xml

        5.2@ComponentScan

            标在上面所说的那个类的上方,表示开启注解扫描 @ComponentScan(“com.sunsheen”)括号里参数指明扫描哪个文件夹下的类

            如果有对个路径要指明,可以使用

              

@ComponentScans({
        @ComponentScan(“com.sunsheen.dao”) ,
        @ComponentScan(“com.sunsheen.service”)
})

        5.3@Import

            导入外部的配置类  如:@Import ( JdbcConfig.class )  写在上面所说的那个类的上方

        5.4@Bean

            写在一个方法的上方,@Bean(name=”dataSource”) 表示IOC容器会扫描这个注解,并调用执行被@Bean标记的这个方法

            默认情况下bean的名称和方法名称相同,你也可以使用name属性来指定

        5.5@PropertySource

            写在类的上方,表示(且只能)加载根路径下的properties配置文件. @PropertySource(“classpath:jdbc.properties”)

            这个classpath 不能忘,并且严格区分大小写,绝对不能写成classPath  它是全小写的!

Share

  这周推荐一篇观点,是关于数据收集忧患的。Westminster 大学高级讲师  Doug Specht的发表的见解。

https://thenextweb.com/syndication/2019/07/07/how-big-biased-datasets-make-social-inequalities-worse/

ARTS第三周的更多相关文章

  1. 三周,用长轮询实现Chat并迁移到Azure测试

    公司的OA从零开始进行开发,继简单的单点登陆.角色与权限.消息中间件之后,轮到在线即时通信的模块需要我独立去完成.这三周除了逛网店见爱*看动漫接兼职,基本上都花在这上面了.简单地说就是用MVC4基于长 ...

  2. Coursera系列-R Programming第三周-词法作用域

    完成R Programming第三周 这周作业有点绕,更多地是通过一个缓存逆矩阵的案例,向我们示范[词法作用域 Lexical Scopping]的功效.但是作业里给出的函数有点绕口,花费了我们蛮多心 ...

  3. JAVA第三周作业(从键盘输入若干数求和)

    JAVA第三周作业(从键盘输入若干数求和) 在新的一周,我学习了JAVA的IO编程.下面的代码实现了从键盘输入若干数求和的目标.import java.util.Scanner; public cla ...

  4. 20145213《Java程序设计》第三周学习总结

    20145213<Java程序设计>第三周学习总结 教材学习内容总结 正所谓距离产生美,上周我还倾心于Java表面的基础语法.其简单的流程结构,屈指可数的基本类型分类,早已烂熟于心的运算符 ...

  5. 20145304 Java第三周学习报告

    20145304 <Java程序设计>第三周学习总结 教材学习内容总结 1.定义类: 类定义时使用class关键词,建立实例要使用new关键词. 代码如下: /*定义类 书上例子 衣服的型 ...

  6. 20145330《Java程序设计》第三周学习总结

    20145330 <Java程序设计>第三周学习总结 第三周知识的难度已经逐步上升,并且一周学习两章学习压力也逐渐加大,需要更高效率的来完成学习内容,合理安排时间. 类与对象 对象(Obj ...

  7. 20145337《Java程序设计》第三周学习总结

    20145337 <Java程序设计>第三周学习总结 教材学习内容总结 类与对象 类与对象的关系:要产生对象必须先定义类,类是对象的设计图,对象是类的实例.我觉得在视频中对类与对象关系的描 ...

  8. Linux内核设计第三周——构造一个简单的Linux系统

    Linux内核设计第三周 ——构造一个简单的Linux系统 一.知识点总结 计算机三个法宝: 存储程序计算机 函数调用堆栈 中断 操作系统两把宝剑: 中断上下文的切换 进程上下文的切换 linux内核 ...

  9. 20145218 《Java程序设计》第三周学习总结

    20145218 <Java程序设计>第三周学习总结 教材学习内容总结 定义类 编写程序要产生对象就要先定义类.类是对象的设计图,对象是类的实例.类定义时使用class关键词,建立实例时, ...

随机推荐

  1. GO学习-(32) Go实现日志收集系统1

    Go实现日志收集系统1 项目背景 每个系统都有日志,当系统出现问题时,需要通过日志解决问题 当系统机器比较少时,登陆到服务器上查看即可满足 当系统机器规模巨大,登陆到机器上查看几乎不现实 当然即使是机 ...

  2. GO学习-(17) Go语言基础之反射

    Go语言基础之反射 本文介绍了Go语言反射的意义和基本使用. 变量的内在机制 Go语言中的变量是分为两部分的: 类型信息:预先定义好的元信息. 值信息:程序运行过程中可动态变化的. 反射介绍 反射是指 ...

  3. Linux BSP非标准HDMI分辨率

    Linux BSP非标准HDMI分辨率 Intrinsyc公司发布了它的一个新的Linux BSP软件的发布 打开-Q820 开发套件基于Linux内核版本.支持的软件功能包括HDMI输出,可以支持标 ...

  4. BTC芯片介绍

    BTC芯片介绍 Innosilicon宣布全球第一和最佳的28nm比特币ASIC和参考矿机 A1Craft(也称为A1)是2013年世界上最好的BTC ASIC,这是比特币区块哈希算法的易于使用,定制 ...

  5. AlexeyAB DarkNet YOLOv3框架解析与应用实践(五)

    AlexeyAB DarkNet YOLOv3框架解析与应用实践(五) RNNs in Darknet 递归神经网络是表示随时间变化的数据的强大模型.为了更好地介绍RNNs,我强烈推荐Andrej K ...

  6. Caffe框架GPU与MLU计算结果不一致请问如何调试?

    Caffe框架GPU与MLU计算结果不一致请问如何调试? 某一检测模型移植到Cambricon Caffe上时,发现无法检测出结果,于是将GPU和MLU的运行结果输出并保存后进行对比,发现二者计算结果 ...

  7. CUDA Pro:通过向量化内存访问提高性能

    CUDA Pro:通过向量化内存访问提高性能 许多CUDA内核受带宽限制,而新硬件中触发器与带宽的比率不断提高,导致带宽受限制的内核更多.这使得采取措施减轻代码中的带宽瓶颈非常重要.本文将展示如何在C ...

  8. 嵌入式Linux设备驱动程序:在运行时读取驱动程序状态

    嵌入式Linux设备驱动程序:在运行时读取驱动程序状态 Embedded Linux device drivers: Reading driver state at runtime 在运行时了解驱动程 ...

  9. 数据结构与算法Python版 熟悉哈希表,了解Python字典底层实现

    Hash Table 散列表(hash table)也被称为哈希表,它是一种根据键(key)来存储值(value)的特殊线性结构. 常用于迅速的无序单点查找,其查找速度可达到常数级别的O(1). 散列 ...

  10. 五、自定义Zabbix监控项目

    要求: 沿用练习三,使用Zabbix实现自定义监控,实现以下目标:监控Linux服务器系统账户的数量. 方案: 需要使用Zabbix自定义key的方式实现自定义监控,参考如下操作步骤:1.创建自定义k ...