关于 JAVA 反射机制
0.1 背景
关于 JAVA 的反射机制,之前学的有点混:
- 动态创建类、动态调用方法,这部分还比较好理解
- 但关于 “编译依赖”、“运行依赖” 这部分,就有点云里雾里
这两天在学写 JavaWeb ,遇到一个非常令人抓狂的问题
最近发现用IDEA创建新项目时,可选的项目模板里,找不到 “Web Application” 了。
今天在 “力扣cn” 做了一道给字符串查重的题。
我的做法:
public boolean isUnique(String astr) {
int stringLength = astr.length();
HashSet<Character> stringSet = new HashSet<>();
for (int i = 0; i < stringLength; i++) {
stringSet.add(astr.charAt(i));
}
// 比较二者长度,返回结果
if (stringLength == stringSet.size()) {
return true;
} else {
return false;
}
}
比起用暴力双循环是好很多,自己还挺满意的,做完题看看解析,又发现了新天地:
今天随手写了一个批处理工具,方便平时开发测试的时候启动、停止Apache和MySQL服务。
@echo off
:begin
for /f "skip=3 tokens=4" %%i in ('sc query Apache2.4') do set "zt_a=%%i" &goto T1
:T1
for /f "skip=3 tokens=4" %%i in ('sc query MySQL57') do set "zt_m=%%i" &goto T2
:T2
REM 加了Goto,则取一个变量即跳转(取第一个值)
REM 不加Goto,则遍历所有可能的值(取末一个值),再执行下一行
echo.
echo ==========
echo Apache服务运行状态: %zt_a%
echo MySQL服务运行状态: %zt_m%
echo ==========
echo '1' 刷新状态
echo '2' 启动Apache服务
echo '3' 停止Apache服务
echo '4' 启动MySQL服务
echo '5' 停止MySQL服务
echo '6' 退出
choice /c:123456 /m:"请选择:"
if %errorlevel%==1 goto begin
if %errorlevel%==2 goto start_a
if %errorlevel%==3 goto stop_a
if %errorlevel%==4 goto start_m
if %errorlevel%==5 goto stop_m
if %errorlevel%==6 goto end
:start_a
echo 启动Apache服务
net start Apache2.4
goto begin
:stop_a
echo 停止Apache服务
net stop Apache2.4
goto begin
:start_m
echo 启动MySQL服务
net start MySQL57
goto begin
:stop_m
echo 停止MySQL服务
net stop MySQL57
goto begin
:end
exit