文章目录
1.Algorithm
1.1 回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
进阶:
你能不将整数转为字符串来解决这个问题吗?
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindrome-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
1.1.1 第一种 String.charAt()
将数字转为字符串,
方便使用String.charAt(i)
方法获取字符串的首位和末位进行比较
class Solution {
public boolean isPalindrome(int x) {
if(x < 0 || (x % 10 == 0 && x != 0)) {
return false;
}
String str = String.valueOf(x);
int j = 0;
int i = str.length() - 1;
while(i >= str.length() / 2) {
if(str.charAt(i) != str.charAt(j))
return false;
i--;
j++;
}
return true;
}
}
1.1.2 第二种 StringBuilder.reverse()
直接使用StringBuilder.reverse()
方法
String是不可变的,所以没有该方法
该方法的实现是将首尾元素调换即可
class Solution {
public boolean isPalindrome(int x) {
if(x < 0 || (x % 10 ==0 && x != 0)) return false;
StringBuffer str = new StringBuffer(String.valueOf(x));
return str.reverse().toString().equals(String.valueOf(x));
}
}
1.1.3 第三种 直接求数字的首尾值
和第一种方案思路一样哎
class Solution {
public static boolean isPalindrome(int x) {
if (x < 0 || (x % 10 == 0 && x != 0)) {
return false;
}
int temp = 1;
while (x / temp >= 10) {
temp *= 10;
}
while (x > 0) {
if (x / temp != x % 10) return false;
x = x % temp /10;
temp /= 100;
}
return true;
}
}
121 100
1.1.4 第四种 反转length/2 到length-1之间的数(√)
使用数字左移反转数字:
newNum = newNum*10 + oleNum%/10
oldNum /= 10
如果是奇数121, x = 1; num = 12;
如果是偶数1221 x = 12; num = 12;
class Solution {
public boolean isPalindrome(int x) {
if(x < 0 || (x / 10 ==0 && x != 0)) {
return false;
}
int num = 0;
while(x > num) {
num = num * 10 + x % 10;
x /= 10;
}
return num == x || num == x/10;
}
}
2.Review
MyBatis Generator
小段的概述性语句可以理解,大段的解释文字看着就头大。。。
3.Tip
3.1 log4net的配置
log4net不能自动删除过期日志
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
<!--如果Flie的值为目录,那么文件则是DatePattern的格式,否则只有这一个文件-->
<param name="File" value="log//log.txt"/>
<param name="DatePattern" value="'log-'yyyyMMdd'.txt'"/>
<!-- 线程安全配置-->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<!-- 追加-->
<param name="AppendToFile" value="true" />
<!--以下三个是同一组设置 设置Size模式;还有Date模式和混合模式-->
<param name="RollingStyle" value="Size"/>
<!-- 每天生成几个文件-->
<param name="maxSizeRollBackups" value="1" />
<!-- 每个文件大小-->
<param name="maximumFileSize" value="20MB" />
<param name="StaticLogFileName" value="false" />
<Encoding value="UTF-8" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
3.2 使用一个域名对应两个IP做负载均衡
session设置:
<sessionState
cookieless="UseCookies"
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
timeout="2880" />
在测试中,该设置方式生效,session确实存在很久;
但是在生产环境中session有时候存在时间很短
怀疑是过一段时间通过DNS解析域名时,IP地址指向了另一台服务器
将ip地址指向同一台服务器
参考session设置:
4.Share
4.1 mybatis逆向工程
参考:mybatis.generator官网
准备:jar包来源:maven仓库
- generator依赖包:mybatis-generator-core-1.3.7.jar
- mysql链接依赖包:
- 配置文件
generatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 数据库驱动jar地址 -->
<classPathEntry location="mysql-connector-java-5.1.47.jar" />
<!-- 数据库链接信息 -->
<context id="DB2Tables" targetRuntime="MyBatis3">
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://ip:port/xuanshangling"
userId="root"
password="wangchunfan123">
</jdbcConnection>
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<javaModelGenerator targetPackage="test.model" targetProject="../src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<sqlMapGenerator targetPackage="test.xml" targetProject="../src">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER" targetPackage="test.dao" targetProject="../src">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<table tableName= "users" domainObjectName="User" ></table>
</context>
</generatorConfiguration>
在generator.jar目录下运行命令
java -jar mybatis-generator-core-1.3.7.jar -configfile ..\generatorConfig.xml -overwrite
生成内容如下: