每日小结
Java Spring 框架学习
Spring框架,它最主要的功能就是管理一堆使App(应用)发挥功能的类,这些作为整个App的基石、主干的类,就叫做bean。
每日小结
Java 包(Package), Jar和模块(Module)的区别
包 (Package)
是Java源文件的集合, 包含Class/Interface/Annotation的定义
与文件系统中的目录对应
主要目的是防止命名冲突
Jar (Java Archive File)
是编译后的Java代码(
.class
)的压缩包实际上是一个zip格式文件
对Jar的操作用
jar
命令, 其语法类似Linux下的tar
创建Jar包:
jar cvf test.jar test
解压Jar包:
jar xvf test.jar
列举Jar包的内容:
jar tvf test.jar
模块 (Module)
是Java语言内置的一种管理组件之间依赖关系的方法, 在Java 9被引入
Module 解决的问题:
在Java 9之前, 主要使用package作为封装方式,使用Jar作为模块, 封装方式由 package和访问修饰符 (private, protected, public,包私有) 控制
任何模块都能访问其他模块的public的代码,不同Jar下的同名包可以相互访问包私有的代码。
无法控制非平台开发者对平台内部包的访问,如应用代码可以访问sun.misc、com.sun.security这样和具体平台绑定的包。
没有明确的依赖信息,模块开发者无法设置必须的依赖,模块使用者不清楚该模块必须依赖哪些模块。只能使用外部的工具,如Maven、Gradle、OSGI等。
Module 的优势
明确的依赖配置,JPMS会在编译和运行之前检查当前环境是否满足依赖的要求。JPMS会检查版本冲突,即当有两个模块暴露了相同的包名时,系统会抛出异常。JPMS支持传递性依赖。
强大的封装,模块可以明确指定哪些包能暴露给哪些模块,JPMS不允许代码使用反射的方式访问不对外开放的包。
性能优化,JPMS完全清楚哪些模块是需要的,所以不需要的模块不会被JVM载入。
Module 的不足:
- 缺乏对模块的版本的支持
特点:

Oracle数据库学习
发表于 更新于 本文字数: 1.2k 阅读时长 ≈ 4 分钟
前言
参考资料:
每日小结
秘书问题
又称相亲问题、止步问题、见好就收问题、苏丹的嫁妆问题、挑剔的求婚者问题等
要聘请一名秘书,有 n 个应聘者。每次面试一人,面试后就要及时决定是否聘他,如果当时决定不聘他,他便不会回来。面试后总能清楚了解应聘者的合适程度,并能和之前的每个人做比较。问什么样的策略,才使最佳人选被选中的概率最大。
答案:
展开
这个问题的最优解是一个停止规则。在这个规则里,面试官会拒绝头 r - 1 个应聘者 (令他们中的最佳人选为 应聘者 M),然后选出第一个比 M 好的应聘者。可见最优策略包含于这个系列的策略中。 (如果M在所有n个应聘者中也是最好的一个,那么这个策略将选不出任何人选)对于任意的截断值 r,最佳人选被选中的概率是:
P(r)=i=1∑nP(applicant i is selected∩applicant i is the best)=i=1∑nP(applicant i is selected∣applicant i is the best)⋅P(applicant i is the best)=[i=1∑r−10+i=r∑nP(the best of the first i−1 applicantsis in the first r−1 applicantsapplicant i is the best)]⋅n1=[i=r∑ni−1r−1]⋅n1=nr−1i=r∑ni−11.
当n趋近于无穷大时
P(x)=x∫x1t1dt=−xln(x).
求出最优的x值为
e1
编译原理课程笔记 - 大纲
#课程简介
总评 = 考试 * 60% + 作业 * 30% + 平时 * 10%
每日小结
React
- children属性: 子元素构成的数组
React-redux
引入:
import {...} from 'react-redux'
Store
Redux maintains a
store
, which holdstate
andreducer
createStore(reducer, initState)
reducer
andinitState
should have the same keys
Reducer
: (state, action) => (newstate)<Provider>
: Inject globalstate
to its children componentconnect(mapStateToProps)(Component)
map current states to
Component
’s propsmapStateToProps
: is a function: (state) => { …someProp }一般和
结合起来用
React-Router
引入:
import {} from 'react-router-dom'
<Route path>
: 当url与path匹配时, 渲染内容<BrowserRouter>, <HashRouter>
:的容器 <Switch>
: 保证其下的所有Route只会选中一个参数化匹配
参数定义:
path="/hsl/:h/:s/:l"
参数获取: 在children组件中
let { h, s, l } = useParams();
<Link to>
: 跳转到to的a标签<Redirect>
: 渲染时自动跳转
嵌套使用:
1
2
3
4let { path, url } = useRouteMatch(); // 获取上一级的path和url
return (
<Route path={`${path}/next`}>
)
Vue-Router
<router-link :to>
: 跳转的a标签<router-view>
: 匹配的路由内容会渲染到这里Router
: 在这里定义全局路由表
Ubuntu 安装 rpm 包
sudo apt install alien
sudo alien packagename.rpm
sudo apt install ./packagename.deb
一步到位: sudo alien -i packagename.rpm
Oracle 的连接方式
SID/System IDentifier: 数据库实例的全局唯一ID, 每个实例都不一样
SERVICE_NAME: 用于对外提供服务的名字, 被客户端使用
- 也可以被数据库端用来区分对不同客户端提供的服务
TNS/Transparent Network Substrate: 由Oracle创造的, 专门用于Oracle数据库连接的, 基于TCP/IP, SDP和命名管道的, 同构p2p连接技术
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21// STATE.WORLD是一个TNS Name
STAGE.WORLD =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP)
(PORT = 1521)
(HOST = LITTLECOMPUTER.ACME.ORG) // 服务器地址
)
(CONNECT_DATA = (SID = MYSID)) // 数据库标识, 可以使用SID或者SERVICE_NAME
)
// PROD.WORLD也是一个TNS Name
PROD.WORLD =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP)
(PORT = 1521)
(HOST = BIGCOMPUTER.ACME.ORG)
)
(CONNECT_DATA = (SERVICE_NAME = MYNAME))
)
每日小结
转换dos格式行尾为unix行尾
工具: dos2unix
单文件:
dos2unix input output
递归转换:
find . -type f -print0 | xargs -0 dos2unix
每日小结
Github Developer Settings
GitHub Apps
OAuth Apps
- 需要用到Github API的App
Personal access tokens
Tokens you have generated that can be used to access the GitHub API.
权限类似于账号+密码登录