- 博客(0)
- 资源 (3)
空空如也
JAVA代码规范
包名:
包名全部用小写字母。
类名和接口名:
类名和接口名称以大写字母开头,往往是名词(逻辑上,非语法上),表明了类或接口的职责。类名称和接口名称还采用驼峰式命名原则,名称中的每个单词的第一个字母大写,其余的小写。
定制类的时候最好按照类职责的不同来分类,这样无论是命名还是修改都比较容易。
方法的命名:
方法的命名应该是以一个全部都是小写字母的动词开始,然后后面出现的单词遵照驼峰命名方式。
变量的命名:
变量的命名应该是以小写字母开头的,而且应该尽量简短,一个变量名的单词与单词之间用驼峰命名方法连接。
常量的命名:
常量的命名应该全部都是大写字幕,单词与单词之间应该以下划线分割。
2018-06-05
关于编程知识--进程的科普
我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题: 1、假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00:01.000 的时候,这个线程会 不会被唤醒? 2、某人的代码中用了一句看似莫明其妙的话:Thread.Sleep(0) 。既然是 Sleep 0 毫秒,那么他跟去掉这句代码相比,有啥区别么? 我们先回顾一下操作系统原理。操作系统中,CPU竞争有很多种策略。Unix系统使用的是时间片算法,而Windows则属于抢占式的。 在时间片算法中,所有的进程排成一个队列。操作系统按照他们的顺序,给每个进程分配一段时间,即该进程 允许运行的时间。如果在 时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程 序所要做的就是维护一张就绪进程列表,,当进程用完它的时间片后,它被移到队列的末尾。 所谓抢占式操作系统,就是说如果一个进程得到了 CPU 时间,除非它自己放弃使用 CPU ,否则将完全霸占 CPU 。因此可以看出,在抢 占式操作系统中,操作系统假设所有的进程都是“人品很好”的,会主动退出 CPU 。 在抢占式操作系统中,假设有若干进程,操作系统会根据他们的优先级、饥饿时间(已经多长时间没有使用过 CPU 了),给他们算出一 个总的优先级来。操作系统就会把 CPU 交给总优先级最高的这个进程。当进程执行完毕或者自己主动挂起后,操作系统就会重新计算一 次所有进程的总优先级,然后再挑一个优先级最高的把 CPU 控制权交给他。 我们用分蛋糕的场景来描述这两种算法。假设有源源不断的蛋糕(源源不断的时间),一副刀叉(一个CPU),10个等待吃蛋糕的人(10 个进程)。 如果是 Unix 操作系统来负责分蛋糕,那么他会这样定规矩:每个人上来吃 1 分钟,时间到了换下一个。最后一个人吃完了就再从头开始。于是,不管这10个人是不是优先级不同、饥饿程度不同、饭量不同,每个人上来的时候都可以吃 1 分钟。当然,如果有人本来不太饿,或者饭量小,吃了30秒钟之后就吃饱了,那么他可以跟操作系统说:我已经吃饱了(挂起)。于是操作系统就会让下一个人接 着来。
2018-06-05
将JBOSS注册为windows系统服务的工具
进入C:\JavaService目录,执行如下命令:
(1).针对单独的Test.class文件(该文件在D:\JavaTest下)
JavaService.exe -install MyService "%JAVA_HOME%\jre\bin\server\jvm.dll" -Djava.class.path="%JAVA_HOME%\\lib\\tools.jar;D:\\JavaTest" -start Test
(2).将Test.class文件打成jar包放在-Djava.class.path后,其中-start Test中的Test是该.class文件在jar中的路经,如:com.cyber.service.Test,在src中的路经是:\com\cyber\service\Test.java。
JavaService.exe -install MyService "%JAVA_HOME%\jre\bin\server\jvm.dll" -Djava.class.path="%JAVA_HOME%\\lib\\tools.jar;C:\\Tomcat 5.5\\webapps\\wpgl\\WEB-INF\\lib\\驱动.jar ;D:\\JavaTest\\Test.jar" -start Test
如果需要其他的外部jar包(数据库的驱动jar包等等),只要在-Djava.class.path 中添加即可,并以分号区分开.(也可以把其他的外部jar包,整合到Test.jar里去,只需要一个Test.jar包就可以了.但是需要第三方插件fatjar来完成外部jar包的整合)
(3).可以添加日志文件(也可以在Test文件中写好日志的路径及其文件名)
JavaService.exe -install MyService "%JAVA_HOME%\jre\bin\server\jvm.dll" -Djava.class.path="%JAVA_HOME%\\lib\\tools.jar;C:\\Tomcat 5.5\\webapps\\wpgl\\WEB-INF\\lib\\驱动.jar;D:\\JavaTest\\Test.jar" -start Test -out D:\JavaTest\log\stdout.log -err D:\JavaTest\log\stderr.log -current D:\JavaTest\log\ -description "测试"
其中-install 开关后面的参数是要添加的服务名;-start开关后面的参数是要启动的java类名;这里-Djava.class.path后面参数中的d:\javaTest是我的Test.class所在路径,实际应用中应该添加你的CLASSPATH。
运行后控制台显示“The MyService automatic service was successfully installed”表示安装成功。
需要注意的问题:
(1) %JAVA_HOME%为JDK目录,如果你没有设置,这里用jdk的绝对地址替代;
(2) -Djava.class.path是必须的,因为服务启动的时候无法访问系统的CLASSPATH变量,必须在这里显示指明;
(3) 服务添加成功以后,为自动启动类型,如需更改,需要自行在服务管理器(services.msc)中修改。
5 测试:
运行net start MyService启动服务;
检查d:\javaTest\test.log文件,数据一直在更新;
确认无误后,运行net stop MyService关闭服务;
Javaservice不支持C:\Program Files中间的空格,所以找不到JVM;使用%JAVA_HOME%时,又必须在其上加双引号才行,即:"%JAVA_HOME%" 。
删除服务:sc delete [service name]
2017-10-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人