工作中的各种笔记

//压缩
tar czvf {name} {目录名}
//解压
tar zxf [name]

局部变量 在栈里
HosSpot
J9
JrCokit
-Djava.rmi.server.hostname=192.168.17.132 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=911 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

本地监控java

jconsole

java -jar -Djava.rmi.server.hostname=192.168.16.211 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=911 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false /dtp/jar/app/dus-log.jar

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -Xms128m -Xmx256m -jar /dtp/jar/app/twdmc.jar PES
java -Xms128m -Xmx128m -javaagent:/dtp/jar/app/SizeOf.jar -jar /dtp/jar/app/twdsc.jar 994171459 uas

scp -r /home/package/uis/Topwalk-UISv2.4_little/package/install_uis2.4.sh [email protected]:~

//设置数据库远程连接
vi /etc/my.cnf
bind-address=127.0.0.1,把这一行给注掉,再重启数据库

查询mysql正在执行的语句
show processlist;

创建sqlservice 自增字段
Create Table yourtable
(
id int identity(1,1),--这是自增id
name varchar(50) --这列写着耍的
)

标准光闸路径
/231home/package/fgap/Topwalk-FGAPv2.2/FGAP_PACKAGE

创建文件 创建文件夹
touch mkdir

crontab [-u username]   //省略用户表表示操作当前用户的crontab
-e (编辑工作表)
-l (列出工作表里的命令)
-r (删除工作作)

ps -ef | grep $0 | grep -v grep | grep -v $$ |awk ‘{print $2}‘|xargs kill -9 > /dev/null 2>&1
杀死其他和本脚本名称一样的其他的进程
如果有保证只有一个脚本在执行的需求,可以在第一行加上这一行

linux下启动Tomcat可看到日志输出
sh catalina.sh run

Iterator可以这样用
for (Iterator iter = this.communicationListeners.iterator(); iter.hasNext(); ) {
FTPCommunicationListener l = (FTPCommunicationListener)iter.next();
l.received(line);
}

mysql查询库中所有表名称
select TABLE_NAME,TABLE_COMMENT from information_schema.tables where table_schema=‘dtpser‘ and TABLE_TYPE=‘BASE TABLE‘

sqlserver 查询所有触发器
select * from sysobjects where xtype=‘tr‘
windows下面查看端口占用
netstat -ano

hibernate查询出来数据不关闭session时,通过操作修改类的值来修改数据库里面的值。程序结束时session自动提交事务,则修改数据库
List<TbServiceIpControl> controls = serviceIpControlDao.findByProperty("serviceId", portMapId);
for(TbServiceIpControl tic : controls){
tic.setCheckType(ipCheckType);
}

之前一直没发现这个问题,后来是因为我的导航栏数据库中数据发生变动后,产生菜单的时候又update了一遍数据库中的数据,使得部分数据值为空了,当时觉得很奇怪,后来仔细看了下log4j打印的日志发现其中有更新的动作,在代码中将数据库中获取到的对象set一个对象属性时,数据库就update了,但是这个问题是怎么产生的呢?

问题重述
[java] view plain copy 在CODE上查看代码片派生到我的代码片
Set<User> users = new HashSet<User>();
User user = null;
for(int i = 0; i < 10; i++){
user = new User();
user.setUserName("wy" + i);
users.add(user);
}
Company company = userDao.getCompany();
company.setUsers(users);

类似上面的代码,company是刚刚从数据库中获取到的,然后我构造了一个User对象的Set集合,然后在这里直接setUsers的时候就出现了更新数据库的动作,当然这段代码只是示例并不是实际的项目代码。

问题在哪里
Hibernate分为三种基本的状态:游离态、自由态(临时状态)、持久态。
持久化状态:与session关联并且和在数据库有数据,已经持久化了并且在数据库的缓存当中了。
我这里的这个对象应该是持久化状态的对象然后我直接构造了一个user对象的set集合,同时对这个对象进行set操作,那么缓存Session中的数据发生改变,那么接着数据库也会跟着进行相应的改变。所以就执行了update的更新操作。

怎么解决
其他两种状态:
1. 临时状态:就是直接new出来的对象,既没有持久化到数据库中去,也没有在session当中。
2. 游离状态:在Session中没有了,但是已经持久化到了数据库当中。

那么这个地方怎么解决呢?
1.如果这个对象(例子中的company)本身不需要用的话,可以直接new一个Company的对象出来然后再setUsers这个时候因为不是Session中的数据,那么不会因为对象的属性发生改变而同步到数据库中去。
2. 如果这个对象(例子中的company)要用的到,那么,在set之前可以先将其转为游离态,这样的话会用到session的几个方法:close、clear、evict。
close方法:关闭session这样这个对象肯定是游离态了,因为session已经关闭了,但是往往我们实际的开发过程中,session在后面是要用的到的,所以这个方法可行,但是不一定用得上,分清具体的情况。
clear方法:将session中的所有的对象全部清除出缓存,这个方式有点劳师动众,不过session清除了全部的对象之后自然就会变为游离态了,这样做不是很好吧我感觉。
evict方法:将某一个对象清除出缓存session,这个方法是很好的实现方式,推荐使用。调用的时候是这样的,session.evict(Object obj);这样就可以了。

知识扩充:深入理解Hibernate三种状态

状态之间如何转换

匹配文件中带ERROR的行
more /log/applog/twdsc/twdsc_371417750.log |grep ERROR

//linux下创建FTP用户SMB用户
useradd -d "/home/test1/" -g root test1 -s /sbin/bulogin
echo topwalk|/usr/bin/passwd --stdin test1
/usr/bin/smbadduser test1:test1
(echo topwalk; echo topwalk) | smbpasswd -as test1

useradd -d "/home/ftptest1/" -g root ftptest1 -s /sbin/bulogin
echo topwalk|/usr/bin/passwd --stdin ftptest1

sprint中设置非单例对象时在bean中加入
scope="prototype"
//查找linux下文件夹
find / -name "rollback" -type d

eq相等 ne、neq不相等, gt大于, lt小于 gte、ge大于等于 lte、le 小于等于 not非 mod求模 is [not] div by是否能被某数整除 is [not] even是否为偶数 is [not] even by $b即($a / $b) % 2 == 0 is [not] odd是否为奇 is not odd by $b即($a / $b) % 2 != 0 示例:

equal/ not equal/ greater than/ less than/ less than or equal/ great than or equal/后面的就不用说了

Smarty 中的 if 语句和 php 中的 if 语句一样灵活易用,并增加了几个特性以适宜模板引擎. if 必须于 /if 成对出现. 可以使用 else 和 elseif 子句. 可以使用以下条件修饰词:eq、ne、neq、gt、lt、lte、le、gte、ge、is even、is odd、is not even、is not odd、not、mod、div by、even by、odd by、==、!=、>、<、<=、>=. 使用这些修饰词时必须和变量或常量用空格格开.

Example 7-11. if statements

Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。
这样当多个线程同时与某个对象交互时,就必须要注意到要让线程及时的得到共享成员变量的变化。
而volatile关键字就是提示JVM:对于这个成员变量不能保存它的私有拷贝,而应直接与共享成员变量交互。
使用建议:在两个或者更多的线程访问的成员变量上使用volatile。当要访问的变量已在synchronized代码块中,或者为常量时,不必使用。
由于使用volatile屏蔽掉了JVM中必要的代码优化,所以在效率上比较低,因此一定在必要时才使用此关键字。

1.查看vsftpd服务是否运行 service vsftpd status

########2.创建一个目录,通常在/data下 cd /data→makdir cdm(省略)

3.创建一个用户且指定目录 useradd -d /data/cdm cdm

4.修改用户名密码 passwd cdm

5.给目录加权限 chmod -R 777 /data/cdm
smbpasswd -a username

时间: 2024-08-06 16:06:35

工作中的各种笔记的相关文章

iOS之工作中的零碎笔记

eil函数-ceil函数的作用是求不小于给定实数的最小整数.ceil(2)=ceil(1.2)=cei(1.5)=2.00使用该函数需要包含头文件 ,该函数返回值为浮点型- 如上图,或者提示private key for "XXX"is not installed on this mac.出现这种错误是因为证书不可用了,我又根据钥匙串重新生成了证书和配置文件.就ok了 出现上图的情况是因为PNG图片出现未知错误,用mac自带的预览功能再重新导出一下就好了(不影响编译).

随机记录工作中常见的sql用法错误(一)

没事开始写博客,留下以前工作中常用的笔记,内容不全或者需要补充的可以留言,我只写我常用的. 网上很多类似动软生成器的小工具,这类工具虽然在表关系复杂的时候没什么软用,但是在一些简单的表结构关系还是很方便的.想起以前开始工作的时候经常犯的错误. 现在就写个简单的错误,大神可能一眼就看出来了,不过新手需要了解一下的. Create table UC_counter { id INT IDENTITY(1, 1) PRIMARY KEY, memberid int } Create table UC_

射频工程师如何在实际工作中学习射频

当射频工程师知道自己的工作职责之后,我们应该如何在工作和实践中进一步学习它呢?现实工作中有很多案例,不是我们通过多少多少的积分微积分方程就可以轻松解决的.这不是说微波方程在实际工作毫无意义,而是说的很多人重复的那一点,"理论要靠实践来检验". 踏入社会工作的第一天,不是你大功告成的第一天,而是你真正学习课本的第一天,是你检验课堂知识的第一天.很多朋友都希望毕业后马上进入一个好的公司,好的部门工作,想搞技术的第一选研究所,选到好公司的,想进公司中央研究部门,进到差一点的公司的也想起码得进

我在工作中遇到的redis集群使用

写次随笔,给自己工作学习中记录一个笔记 废话不多说,直接上代码: 功能:将相关信息存到redis中,并设置过期时间,如果redis中有,从redis获取,如果没有,从mysql中获取.redis配置了三台集群环境 1:首先,是配置文件中相关配置信息,在java代码中,相关配置直接从配置文件中读取: #redis配置 MaxActive=10 #最大空闲连接数 MaxIdle=5 #最小空闲连接数 MinIdle=3 #最大连接数 MaxTotal=8 #jedis集群地址A JedisA.hos

工作中使用到的技术和工具分享

已经很长时间没有写博客,7月份走出校门距离现在也有4个月了,没出校门之前以为自己懂得很多,真正工作了才发现自己学的东西真的已经落伍和过时了,在这里分享这四个月学习到的或者收藏的一些工作中需要使用的技术和工具,希望对还没走出校门的你们或者急需提升自己技术能力的伙伴有些许的帮助. 一.实用工具介绍 1)FQ工具:一只猫 | Jump Out Google是最好的老师,你遇到的问题和困难前人肯定都遇到过,技术资料不建议百度 2)抓包工具:Fiddler:Fiddler 抓包工具总结.charles 工

[工作中的设计模式]享元模式模式FlyWeight

一.模式解析 Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是因为这样更能反映模式的用意.享元模式是对象的结构模式.享元模式以共享的方式高效地支持大量的细粒度对象. 享元模式:主要为了在创建对象时,对共有对象以缓存的方式进行保存,对外部对象进行单独创建 模式要点: 1.享元模式中的对象分为两部分:共性部分和个性化部分,共性部分就是每个对象都一致的或者多个对象可以共享的部分,个性化部分指差异比较大,每个类均不同的部分 2.共性部分的抽象就是此模

openstack运维手册(个人实际工作中整理)

openstack运维手册,是本人在实际工作中整理的,现分享!!!因水平有限,欢迎广大朋友指正.具体文档见附件.

软件测试工程师工作中常用的Linux命令

Linux系统有着众多的优点,比方开源.非商业版本免费.多任务多用户操作,因而Linux系统在非桌面范畴占有压倒性的市场份额.关于互联网技术工作者来说,控制常用的Linux命令也是一门必修课.下面罗列一些笔者在工作中常用的Linux命令. cd 切换目录 cd .. 返回上一层目录 cd . 进入当前目录 cd - 返回前一次的目录,即上一次的目录不是上一层目录 ls 查看文件与目录 用法: ls [参数][文件] 参数: ls –l 显示文件的权限和属性 ls –a 列出所有的文件,包含隐藏文

[工作中的设计模式]解释器模式模式Interpreter

一.模式解析 解释器模式是类的行为模式.给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器.客户端可以使用这个解释器来解释这个语言中的句子. 以上是解释器模式的类图,事实上我很少附上类图,但解释器模式确实比较抽象,为了便于理解还是放了上来,此模式的要点是: 1.客户端提供一个文本.表达式或者其他,约定解析格式 2.针对文本中可以分为终结符表达式和非终结符表达式, 3.终结符表达式无需进一步解析,但仍需要转化为抽象接口的实例 4.针对非终结表达式,没一种标示需要定义一种解