编程小知识合集

编程小知识合集

Hello word(多语言实现)

C#

// 创建一个文件hello.cs,内容如下
using System;
namespace CH01
{
	class Program
	{
		static void Main()
		{
			Console.WriteLine("Hello Word");
		}
	}
}

// 编译成exe文件,在c#自己的编译环境下编译(VS工具)
$ csc + hello.cs
$ hello

Java

// 创建一个文件hello.java,内容如下
public class Hello {
	public static void main(String args[]) {
		System.out.println("Hello Word");
	}
}

// 编译成class文件
$ javac hello.java
$ java hello
Hello World

Python

# 创建一个文件hello.py,内容如下
print("Hello Word!!!")

# 在python环境下解释执行
$ python3 hello.py

解决程序端口占用

程序运行时可能会产生端口占用的问题,下面是解决方案:

1)打开dos窗口,执行netstat -ano命令,可以查看所有进程,找到冲突端口的PID,然后去到任务管理器(ctrl+shift+esc)找到该PID程序并结束进程

2)打开dos窗口,执行netstat -aon|findstr "8080"命令,可以查看指定端口的PID

使用curl命令发送GET/POST请求

命令详细资料网站:https://man.linuxde.net/curl

1)发送GET
curl http://127.0.0.1:8080/login?admin&password=12345678

2)发送POST
curl -d "user=admin&password=12345678" http://127.0.0.1:8080/login

3)发送指定格式并且输出到日志
curl -H "Content-Type:application/json" -X POST -d "user=admin&password=12345678" http://127.0.0.1:8080/login >> ./alert.log

学习Spring5源码时所遇到的坑

1)本人下载的源码版本是spring-framework-5.0.2.RELEASE

配置好gradle环境变量之后,cmd进入到spring项目,执行gradlew.bat编译项目。

2)如何导入到IDEA中

file>>>open>>>找到spring项目的build.gradle文件,导入时设置gradle安装包路径和jdk版本以及是否自动导包。

3)在导包时出现问题,提示连接超时

这是由于国外网络请求超时,我们可以设置从阿里下载jar包, 这样所有的gradle项目都将从阿里仓库下载jar包。在gradle的本地仓库里创建一个init.gradle文件,内容如下:

allprojects{
    repositories {
        def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
        all { ArtifactRepository repo ->
            if(repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
                    remove repo
                }
            }
        }
        maven {
            url REPOSITORY_URL
        }
    }
}

4)Could not find org.jetbrains.dokka:integration:0.9.15.

导包继续时无法找到该包,所以我们要修改该包版本号,解决办法如下:

1)修改build.gradle文件,将id "org.jetbrains.dokka" version "0.9.15" 修改为id "org.jetbrains.dokka" version "0.9.17"
2)repositories中添加maven { url "https://plugins.gradle.org/m2/" },问题解决了,可以下载新版本的jar包

雪花算法生成的Long类型id返回前端时后几位为0

原因:JS支持的最大整数是2的53次方减1,所以损失了精度。

解决办法:

1、存储到数据库时为varchar类型

2、取出后返回前端前转为String类型

3、通过json序列化做全局处理,传到前端的转为字符串,保存到后台时是Long

在Mybatis的xml文件调用Java类的方法

使用的是OGNL表达式,表达式格式为:${@prefix@methodName(传递参数名称)}

1)赋值时判断

SELECT * FROM USER WHERE name='${@org.apache.commons.lang3@StringUtils(name)}' 

2)IF条件判断

<if test="@org.apache.commons.lang.StringUtils@isNotBlank(name)">name=#{name}</if>

3)自定义生成ID

<insert id="importData">
        insert into myproperty (id,asset_id,asset_name,dept_name,brand,specifications,units,produce_time,indate,purchase_time,price,
        total_money,address,classification,is_fixed) values
        <foreach collection="list" item="property" separator=",">
            (
            ${@cn.hutool.core.util.IdUtil@getSnowflake(1, 3).nextIdStr()},
            ${@cn.hutool.core.util.IdUtil@getSnowflake(1, 3).nextId()},
            #{property.assetName},
            #{property.deptName},
            #{property.brand},
            #{property.specifications},
            #{property.units},
            #{property.produceTime},
            #{property.indate},
            #{property.purchaseTime},
            #{property.price},
            #{property.price},
            #{property.address},
            #{property.classification},
            <choose>
                <when test="property.price > 1000">
                    '0'
                </when>
                <otherwise>
                    ''
                </otherwise>
            </choose>
            )
        </foreach>
</insert>
posted @ 2019-08-07 16:18  肖德子裕  阅读(2066)  评论(0编辑  收藏  举报