文章字数:65,阅读全文大约需要1分钟
问题描述
从java返回的boolean类型的flag直接用来if判断,结果flag是true却没有进入if语句。
分析
用typeof flag 发现接收到的是string类型
解决
做了个判断
1 | target = res==="true"?true:res==true?true:false; |
Boolean(target)
竟然不行??
文章字数:540,阅读全文大约需要2分钟
VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。在JDK_HOME/bin(默认是C:\Program Files\Java\jdk1.6.0_13\bin)目录下面,有一个jvisualvm.exe文件,双击打开,从UI上来看,这个软件是基于NetBeans开发的了。
VisualVM 提供了一个可视界面,用于查看 Java 虚拟机 (Java Virtual Machine, JVM) 上运行的基于 Java 技术的应用程序的详细信息。VisualVM 对 Java Development Kit (JDK) 工具所检索的 JVM 软件相关数据进行组织,并通过一种使您可以快速查看有关多个 Java 应用程序的数据的方式提供该信息。您可以查看本地应用程序或远程主机上运行的应用程序的相关数据。此外,还可以捕获有关 JVM 软件实例的数据,并将该数据保存到本地系统,以供后期查看或与其他用户共享。
主要有:监控、线程、Visual GC这些功能,还可以使用插件增加功能
文章字数:213,阅读全文大约需要1分钟
之前有一个文件转成base64的js操作,其中有一部分是文件的读取。以前没有看到过js的文件操作,这一次特地找了一个demo。原生的javascript好像只支持文件读取,文件的写入似乎不支持。
1 | var |
文章字数:806,阅读全文大约需要3分钟
jvm分为三个主要的子系统:
(1)类加载系统 (2)运行时数据区 (3)执行引擎
数据加载进运行时数据区,执行引擎从数据区获取执行
处理动态类加载功能,当运行时首次引用一个类时,它加载、链接、初始化该类文件
启动类加载器(BootStarp class Loader)、扩展类加载器(Extension class Loader)、应用程序类加载器(Application class Loader)三个组件完成此操作:
ext
目录的类(jre\lib
)加载机制:
用户类加载器=>应用程序类加载器=>扩展类加载器=>启动类加载器
双亲委派优点:1.防止重复加载 2.防止底层传入虚假的核心JavaAPI
Method Area
)的原始引用替代。这是类加载的最后阶段,静态变量赋值,静态代码块被执行。
之前的文章jmm(java内存模型)有讲到,不再赘述。
将数据区内的字节码逐段执行。
能快速解析字节码,但是对于重复的方法会每次都重新解析
为了解决解释器的缺点,当被判定为重复代码将使用JIT编译,并重复利用。
其它:
之后另起一章讲述
-Xms
-Xmx
(一般设置一样的值,否则内存抖动)-Xss
线程堆栈调用深度–XX:NewSize–XX:MaxNewSize
指定新生代初始大小和最大大小。-XX:NewRatio
是年老代 新生代相对的比例-XX:SurvivorRatio
配置的是在新生代里面Eden
和一个Servive
的比例文章字数:583,阅读全文大约需要2分钟
传统用户登录后会使用session
存储用户信息,session
依靠cookie
来记录sessionId
,而移动端没有cookie
。jwt
本质上是一串字符串,包含头部、内容、签名三部分。头部可以存储加密方式等信息,内容可以是用户基本信息,签名是对前面两部分的签名,用来验证真伪。使用jwt
后服务端无需保存用户状态,每次用户请求都需要带上jwt
的字符串,以此表明身份。不依赖session
的存储用户信息,更适合分布式及移动端
1 | # base64的头部 + "." + base64的内容 + "." + 对于前面部分的签名 |
一般存储以下内容
1 | { |
payload只经过base64,是可逆的,相当于明文。所以最好不要放置敏感信息
1 | # 标准的jwt主体可以使用这七个默认字段 |
1 | HMACSHA256(base64UrlEncode(header)+"."+base64UrlEncode(payload),secret) |
签名算法主要有
HMAC
哈希消息验证码对称算法:HS256/HS384/HS512
RSASSA
非对称的RSA
签名算法:RS256/RS384/RS512
ECDSA
非对称的椭圆曲线数据签名算法: ES256/ES384/ES512
java-jwt
1 | <dependency> |
生成jwt
1 | // 指定token过期时间为10天 |
校验及获取内容
1 | // 解析对象 |
1 | RSA rsa = new RSA("pwd", null); |
1 | RSA rsa = new RSA(null, "pwd"); |
文章字数:265,阅读全文大约需要1分钟
加载一个类,传入名字或位置
findLoadedClass(String)
检测是否这个类已经被加载loadClass()
方法,直到找到或者父类为空(说明是启动类加载器)findClass(String)
1 | protected Class<?> loadClass(String name, boolean resolve) |
loadClass
的源码可以看到,最后如果还是找不到类就会调用findClass
。但是ClassLoader
的findClass
是直接抛出异常,自定义类加载器需要实现此方法。1 | protected Class<?> findClass(String name) throws ClassNotFoundException { |
文章字数:481,阅读全文大约需要1分钟
网上找的leetCode
题目字符串转树和链表的工具,来自原文
1 | package com.colin.tool; |
1 | // 引入TreeNode和ListNode |
文章字数:1233,阅读全文大约需要4分钟
linux命令格式为 命令 [-选项] [参数]
文件名 | 全称 | 介绍 |
---|---|---|
bin | binaries | 存放二进制可执行文件 |
sbin | super user binaries | 存放二进制可执行文件,root才能访问 |
etc | etcetera | 存放系统配置文件 |
usr | unix shared resources | 存放共享的系统资源 |
home | - | 存放用户文件的根目录 |
root | - | 超级管理员目录 |
dev | devices | 存放设备文件 |
lib | library | 存放根文件系统中程序运行需要的共享库和内核模块 |
mnt | mount | 系统管理员安装临时文件系统的安装点 |
boot | - | 存放用于系统引导时使用的各种文件 |
tmp | temporary | 用于存放各种临时文件 |
var | variable | 用于存放运行时需要改变数据的文件 |
操作 | 参数 | 示例 | 说明 |
---|---|---|---|
cd | cd / | 切换目录 | |
pwd | pwd | 显示当前工作目录的目录 | |
touch | touch test.txt | 创建空文件 | |
mkdir | mkdir testDir | 创建目录 | |
- | -p | mkdir -p dir1/dir2/dir3 | 创建多级目录,父目录不存在情况下先生存父目录 |
cp | cp 1.txt newDirectort | 复制文件或目录到新地方 | |
- | -r | cp -r dir1/ xxx | 递归处理,目录及目录下文件一起拷贝到xxx |
mv | mv 文件1 文件2 | 将文件1重命名为文件2 | |
mv | mv 文件 目录 | 移动文件到目录 | |
mv | mv 源目录 目标目录 | 存在目标目录则移动,否则重命名 | |
rm | rm 1.txt | 删除 | |
- | -r -f | rm -rf dir1 | r删除目录下的所有文件 f强制删除 |
rmdir | rmdir dir1 | 删除空目录 | |
> | echo xxx > 1.txt | 将前面的输出定向写入到文件,没有创建,有覆盖 | |
>: | echo xx >: 1.txt | 写入,文件有内容覆盖 | |
>> | echo xx >> 1.txt | 追加到文件,文件不存在创建 | |
>>: | echo xx >>: 1.txt | 追加写入 |
操作 | 参数 | 示例 | 说明 |
---|---|---|---|
cat | cat 1.txt | 显示文件内容 | |
more | more 1.txt | 分页显示内容,可前后翻页。空格向后,b? | |
less | less 1.txt | 方向键查看内容,加载速度快 | |
head | head 1.txt | 查看文件开头,默认看十行 | |
- | - [num] | head -20 1.txt | 查看固定行数内容 |
tail | tail 1.txt | 查看文件结尾,默认十行 | |
- | - [num] | tail -20 1.txt | 查看结尾固定行数内容 |
- | -f | tail -f 1.txt | 循环滚动读取文件,根据文件属性追踪 |
- | -F | tail -F 1.txt | 循环滚动读取文件动态,文件文件名追踪 |
wc | wc 1.txt | 统计行数、字数、字符数 | |
- | -m | wc -m 1.txt | 字符数 |
- | -w | wc -w 1.txt | 文本字数 |
- | -l | wc -l 1.txt | 文本行数 |
scp | 复制远程机器的文件 |
操作 | 参数 | 示例 | 说明 |
---|---|---|---|
find | -name | find dir -name 1.txt | 在文件系统中查找文件 |
grep | grep “aaa “ 1.txt | 查找1.txt中的包含aaa的行 | |
- | grep zz *file | 查找当前目录以file结尾的文件里有zz的行 | |
- | -r | grep -r xxx /etc | 递归的形式查找目录及目录的子目录下文件有xxx的行 |
- | -v | grep -v test *test | 反向查找,查找不包含test的行 |
- | -E -n | grep -E -n “^w” 1.txt | -E使用正则查看1.txt中w开头的行,-n显示行号 |
In | In1.txt 1_bak.txt | 建立连接文件 | |
- | -s | In -s 1.txt 1_bak.txt | 建立符号连接,软连接。 |
操作 | 参数 | 示例 | 说明 |
---|---|---|---|
top | top | 显示当前系统中耗电最多的进程 | |
date | date | 显示系统时间 | |
ps | 配合参数使用 | ||
- | -e | ps -e | 显示所有进程,环境变量 |
- | -f | ps -ef | 全格式显示 |
- | -a | ps -a | 显示所有用户的所有进程(包括其他用户) |
- | -u | ps -au | 按照用户名和启动时间显示进程 |
- | -x | ps -aux | 显示无控制终端的进程 |
kill | -15 | kill -15 pid | 正常退出pid程序 |
- | -9 | kill -9 pid | 立即杀死进程 |
df | df | 显示文件系统磁盘空间状况 | |
-h | df -h | ||
du | 显示指定目录及子目录已使用磁盘空间总和 | ||
- | -s | du -s * | 显示指定目录, |
- | -h | du -sh * | 友好显示 |
free | free | 显示当前内存和交换空间情况 | |
ifconfig | ifconfig | 网卡网络配置,ip,网关等 | |
- | ifconfig eth0 192.168.1.1 | 临时修改系统ip(需要重启) | |
ping | ping www.baidu.com | 测试网络连通 | |
hostname | hostname | 查看主机名 | |
shutdown | 关机,参数 -help | ||
halt | halt | 关机,相当于shutdown -h | |
reboot | reboot | 重启,shutdown -r | |
sudo | 暂时切换成root,ubuntu下一般是15分钟 | ||
su | 切换成root,没时间限制 |
操作 | 参数 | 示例 | 说明 |
---|---|---|---|
gzip | gzip 1.txt | 压缩文件或文件夹 | |
- | -d | gzip -d 1.txt gz | 解压文件 |
- | -[num] | gzip -9 1.txt | 压缩速度,越快压缩比越小 |
tar | 打包压缩 |
-rwx rw- r–
所属用户权限 所属组权限 其它用户权限
- 普通文件 d目录 l链接文件
chmod 修改文件权限
chown 修改用户权限
i
写模式esc键
退出写模式:
命令行模式:wq
命令行模式下输入,保存退出
文章字数:428,阅读全文大约需要1分钟
回顾一下markdown命令
内容有:1.标题 2.字体 3.引用 4.分割线 5.图片 6.超链接 7.列表 8.表格 9.代码
1 |
|
效果:
**加粗**
加粗
*斜体*
斜体
***斜体加粗***
斜体加粗
~~删除线~~
删除线
1 |
|
一级引用
二级引用
三个以上--- 或者***
1 |
|
1 | - xxx |
1 |
|
表头|表头|表头
—|:—:|—:
内容|xxx|xxx
1 |
|
单行代码
//以下是多行代码
三个` (```)
多行代码
多行代码
三个` (```)
1 | `单行代码` |
多行代码
---
文章字数:647,阅读全文大约需要2分钟
maven archetype
是maven
提供的模板工具包,可以帮助用户提供项目模板。
cocoon-22-archetype-webapp
: 有applicationContext.xml
、log4j.xml
、web.xml
三个
maven-archetype-quickstart
: 简单的java
程序模板,有测试类和普通入口
mavne-archetype-webapp
: 简单的jsp
项目模板,里面有web.xml
和index.jsp
appfuse-basic-jsf
(创建一个基于Hibernate,Spring和JSF的Web应用程序的原型) appfuse-basic-spring
(创建一个基于Hibernate,Spring和Spring MVC的Web应用程序的原型) appfuse-basic-struts
(创建一个基于Hibernate,Spring和Struts 2的Web应用程序的原型) appfuse-basic-tapestry
(创建一个基于Hibernate,Spring 和 Tapestry 4的Web应用程序的原型) appfuse-core
(创建一个基于Hibernate,Spring 和 XFire的jar应用程序的原型) appfuse-modular-jsf
(创建一个基于Hibernate,Spring和JSF的模块化应用原型) appfuse-modular-spring
(创建一个基于Hibernate, Spring 和 Spring MVC 的模块化应用原型) appfuse-modular-struts
(创建一个基于Hibernate, Spring 和 Struts 2 的模块化应用原型) appfuse-modular-tapestry
(创建一个基于 Hibernate, Spring 和 Tapestry 4 的模块化应用原型) maven-archetype-j2ee-simple
(一个简单的J2EE的Java应用程序) maven-archetype-marmalade-mojo
(一个Maven的 插件开发项目 using marmalade) maven-archetype-mojo
(一个Maven的Java插件开发项目) maven-archetype-portlet
(一个简单的portlet应用程序) maven-archetype-profiles
maven-archetype-quickstart
maven-archetype-site-simple
(简单的网站生成项目) maven-archetype-site
(更复杂的网站项目) maven-archetype-webapp
(一个简单的Java Web应用程序) jini-service-archetype
(Archetype for Jini service project creation) softeu-archetype-seam
(JSF+Facelets+Seam Archetype) softeu-archetype-seam-simple
(JSF+Facelets+Seam (无残留) 原型) softeu-archetype-jsf
(JSF+Facelets 原型) jpa-maven-archetype
(JPA 应用程序) spring-osgi-bundle-archetype
(Spring-OSGi 原型) confluence-plugin-archetype
(Atlassian 聚合插件原型) jira-plugin-archetype
(Atlassian JIRA 插件原型) maven-archetype-har
(Hibernate 存档) maven-archetype-sar
(JBoss 服务存档) wicket-archetype-quickstart
(一个简单的Apache Wicket的项目) scala-archetype-simple
(一个简单的scala的项目) lift-archetype-blank
(一个 blank/empty liftweb 项目) lift-archetype-basic
(基本(liftweb)项目) cocoon-22-archetype-block-plain
([http://cocoapacorg2/maven-plugins/]) cocoon-22-archetype-block
([http://cocoapacorg2/maven-plugins/]) cocoon-22-archetype-webapp
([http://cocoapacorg2/maven-plugins/]) myfaces-archetype-helloworld
(使用MyFaces的一个简单的原型) myfaces-archetype-helloworld-facelets
(一个使用MyFaces和Facelets的简单原型) myfaces-archetype-trinidad
(一个使用MyFaces和Trinidad的简单原型) myfaces-archetype-jsfcomponents
(一种使用MyFaces创建定制JSF组件的简单的原型) gmaven-archetype-basic
(Groovy的基本原型) gmaven-archetype-mojo
(Groovy mojo 原型)