<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sinat_34612251的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sinat_34612251</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sinat_34612251]]></copyright><item><title><![CDATA[如何实现在main()方法执行前输出“Hello World”]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/112667922</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/112667922</guid><author>sinat_34612251</author><pubDate>Fri, 15 Jan 2021 14:56:06 +0800</pubDate><description><![CDATA[如何实现在main()方法执行前输出“Hello World”
在Java语言中，main()方法是程序的入口方法，在程序运行时，最先加载的就是main()方法，但这并不意味着main()方法就是程序运行时第一个被执行的模块。在Java语言中，静态块在类被加载时就会被调用，因此可以在main()方法执行前，利用静态块实现输出“Hello World”的功能，以如下代码为例：
public class Demo {

    static {
        System.out.println("hello]]></description><category></category></item><item><title><![CDATA[读书笔记]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/89844926</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/89844926</guid><author>sinat_34612251</author><pubDate>Sun, 05 May 2019 14:40:32 +0800</pubDate><description><![CDATA[链接：https://pan.baidu.com/s/1qHxz2k64D_JGcoUAt70-dw
提取码：co4x

]]></description><category></category></item><item><title><![CDATA[MySQL数据库事务的隔离级别]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/89844127</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/89844127</guid><author>sinat_34612251</author><pubDate>Sun, 05 May 2019 14:12:22 +0800</pubDate><description><![CDATA[1.READ UNCOMMITTED（未提交读）
事务中的修改，即使没有提交，对其他事务也都是可见的。
事务可以读取未提交的数据，即脏读（Dirty Read）。
实际应用中很少使用。
2.READ COMMITTED（提交读）
一个事务从开始到提交之前，所做的任何修改对其他事务都是不可见的，有时也叫不可重复读。
3.REPEATABLE READ（可重复读）
是MySQL的默认事务隔离级别。
在...]]></description><category></category></item><item><title><![CDATA[MySQL函数]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/89355178</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/89355178</guid><author>sinat_34612251</author><pubDate>Thu, 18 Apr 2019 20:04:10 +0800</pubDate><description><![CDATA[文本处理函数
1.Concat()
拼接两个或多个列
select concat(name, ' (', location, ')') from city order by name;

**注意：**多数的DBMS使用+或||来实现拼接，MySQL则使用concat()来实现。
2.Trim()
删除字段中左右两边多余的空格
select concat(trim(name), ' (', loc...]]></description><category></category></item><item><title><![CDATA[有效的完全平方数]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/89351091</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/89351091</guid><author>sinat_34612251</author><pubDate>Wed, 17 Apr 2019 10:37:13 +0800</pubDate><description><![CDATA[给定一个正整数 num，编写一个函数，如果 num 是一个完全平方数，则返回 True，否则返回 False。
说明：不要使用任何内置的库函数，如  sqrt。
/**
     * 解法一
     *
     * @param num num
     * @return boolean
     */
    private static boolean isPerfectSquare(i...]]></description><category></category></item><item><title><![CDATA[取消MyEclipse的置顶]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/88614914</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/88614914</guid><author>sinat_34612251</author><pubDate>Sun, 17 Mar 2019 10:25:47 +0800</pubDate><description><![CDATA[取消MyEclipse的置顶
按 Ctrl + Alt + Esc 即可

]]></description><category></category></item><item><title><![CDATA[上传SFTP中出现的几个问题]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/88355106</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/88355106</guid><author>sinat_34612251</author><pubDate>Fri, 08 Mar 2019 17:15:47 +0800</pubDate><description><![CDATA[这两天写了一个上传SFTP的接口，现将当中出现的几个问题总结一下：

连接SFTP时，请求的IP、端口、用户名、密码写在了配置文件（properties）里面，最开始在IP的后面多了一个空格，导致无法连接服务器，在错误提示的最后面有一个？，让我想到了是否是这个空格出现的问题，取消掉空格后，此错误解决；
错误提示：no such file，无权限进入目录或者是新建目录，将请求目录更改为对方服务器根目...]]></description><category></category></item><item><title><![CDATA[IO流之copy PDF文件]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/88285205</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/88285205</guid><author>sinat_34612251</author><pubDate>Thu, 07 Mar 2019 09:28:39 +0800</pubDate><description><![CDATA[package com.io;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import com.itextpdf.text.Docum...]]></description><category></category></item><item><title><![CDATA[IO流之字符流读写文件]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/88252513</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/88252513</guid><author>sinat_34612251</author><pubDate>Wed, 06 Mar 2019 19:56:19 +0800</pubDate><description><![CDATA[public void copyFile() {

		FileReader fileReader = null;
		FileWriter fileWriter = null;

		try {
			fileReader = new FileReader(new File(&quot;D:\\bb.txt&quot;));
			fileWriter = new FileWriter(new File(&quot;D:\...]]></description><category></category></item><item><title><![CDATA[IO流之字节流的读取操作]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/88248423</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/88248423</guid><author>sinat_34612251</author><pubDate>Wed, 06 Mar 2019 18:33:37 +0800</pubDate><description><![CDATA[/**
     * 字节流读取文件
     */
    private void readByteStream() throws IOException {
		// 字节输入流
        FileInputStream fileInputStream = new FileInputStream(new File(&amp;amp;quot;D:\\aa.txt&amp;amp;quot;));
		// 字节数组
      ...]]></description><category></category></item><item><title><![CDATA[Servlet涉及的类]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/88184566</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/88184566</guid><author>sinat_34612251</author><pubDate>Tue, 05 Mar 2019 15:35:43 +0800</pubDate><description><![CDATA[Servlet、ServletConfig、Serializable（基类的三个接口）；
GenericServlet（抽象类）实现了上述三个接口，没有对HTTP请求处理进行实现；
HttpServlet（抽象类）继承了GenericServlet，为HTTP请求中POST、GET等类型提供了具体的操作方法。

通常情况下，我们编写的Servlet都继承自HttpServlet

...]]></description><category></category></item><item><title><![CDATA[JDBC获取数据库连接]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/88180120</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/88180120</guid><author>sinat_34612251</author><pubDate>Tue, 05 Mar 2019 14:03:51 +0800</pubDate><description><![CDATA[private static Connection connection;

    private static final String URL = &quot;jdbc:mysql://localhost:3306/test?serverTimezone=GMT&quot;;

    private static final String USER = &quot;root&quot;;

    private static...]]></description><category></category></item><item><title><![CDATA[查询条件未正确处理]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/88171406</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/88171406</guid><author>sinat_34612251</author><pubDate>Tue, 05 Mar 2019 10:43:38 +0800</pubDate><description><![CDATA[hql.append(&quot;select rmUsecreditTx from RmUsecreditTx rmUsecreditTx Where 1 = 1 and &quot; +
				&quot;rmUsecreditTx.intentUpLetterFlag = '2' and rmUsecreditTx.ePolicyUploadSize &amp;lt; 5 and &quot;);
		
		hqlQueryRule.a...]]></description><category></category></item><item><title><![CDATA[悲观锁和乐观锁]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/88120413</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/88120413</guid><author>sinat_34612251</author><pubDate>Mon, 04 Mar 2019 16:27:27 +0800</pubDate><description><![CDATA[悲观锁
悲观锁是一种利用数据库内部机制提供的锁的方法，也就是对更新的数据加锁，这样在并发期间一旦有一个事务持有了数据库记录的锁，那么其他线程将会被挂起，直到当前更新操作提交事务才能抢占资源进行更新。
悲观锁会降低性能，原因是：当一条请求抢占资源后，其他的请求就得不到资源，这时，CPU就会将这些没有得到资源的线程挂起，挂起的线程会消耗CPU的资源，尤其是在高并发的请求中。
乐观锁
乐观锁是一种不会阻...]]></description><category></category></item><item><title><![CDATA[复习]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/88043084</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/88043084</guid><author>sinat_34612251</author><pubDate>Thu, 28 Feb 2019 19:42:58 +0800</pubDate><description><![CDATA[HashMap和HashTable的区别

HashMap允许null作为键值，而HashTable不允许；
HashMap不是线程安全的，HashTable是线程安全的。

HashMap的实现原理

HashMap是基于Map的非同步的实现，允许null作为键和值，无序，是一种“散列链表”的数据结构（数组+链表）
HashMap的存储

计算KEY的哈希值；
判断哈希值是否与数组中元素的哈希值...]]></description><category></category></item><item><title><![CDATA[数据库中计算时间差的函数]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/87911295</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/87911295</guid><author>sinat_34612251</author><pubDate>Mon, 25 Feb 2019 09:30:14 +0800</pubDate><description><![CDATA[Oracle
天：
Round(to_Number(end_date - start_date))

小时：
Round(to_Number(end_date - start_date) * 24)

分钟：
Round(to_Number(end_date - start_date) * 24 * 60)

秒：
Round(to_Number(end_date - start_date) * ...]]></description><category></category></item><item><title><![CDATA[IDEA自动生成serialVersionUID]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/87865203</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/87865203</guid><author>sinat_34612251</author><pubDate>Thu, 21 Feb 2019 17:31:35 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[最长公共前缀]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/87855535</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/87855535</guid><author>sinat_34612251</author><pubDate>Thu, 21 Feb 2019 10:02:04 +0800</pubDate><description><![CDATA[/**
	 * 编写一个函数来查找字符串数组中的最长公共前缀。 
	 * 如果不存在公共前缀，返回空字符串 &quot;&quot;。
	 * 
	 * @param strs
	 * @return
	 */
	public String longestCommonPrefix(String[] strs) {

		if (strs.length == 0) {
			return &quot;&quot;;
		}

		Stri...]]></description><category></category></item><item><title><![CDATA[工厂模式和抽象工厂模式]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/87817153</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/87817153</guid><author>sinat_34612251</author><pubDate>Wed, 20 Feb 2019 19:35:22 +0800</pubDate><description><![CDATA[package com.factory;

/**
 * 工厂模式
 */
public class FactoryModelDemo {

	public static void main(String[] args) {

		ProductFactory productFactory = new ProductFactory();

		Product product = productFa...]]></description><category></category></item><item><title><![CDATA[罗马数字转整数]]></title><link>https://blog.youkuaiyun.com/sinat_34612251/article/details/87782278</link><guid>https://blog.youkuaiyun.com/sinat_34612251/article/details/87782278</guid><author>sinat_34612251</author><pubDate>Wed, 20 Feb 2019 11:08:15 +0800</pubDate><description><![CDATA[罗马数字包含以下七种字符: I， V， X， L，C，D 和 M。
字符          数值
I             1
V             5
X             10
L             50
C             100
D             500
M             1000
例如， 罗马数字 2 写做 II ，即为两个并列的 1。12...]]></description><category></category></item></channel></rss>