Java基础
JAVA易错点
小黄鸭式编程
这个作者很懒,什么都没留下…
展开
-
【Java-Mybatis-MySQL】创建和插入百万级别数据的优化及时间比较
先进行调优:数据库连接url中增加一个rewriteBatchedStatements=true(开启批量插入) url: jdbc:mysql://192.168.0.147:3306/gnnykj_dev?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezo原创 2020-06-22 17:39:13 · 1123 阅读 · 0 评论 -
【Java】在循环添加值的时候,变量的声明和创建位置应该放在哪里的问题
需求:向一个列表插入十个不同的bean。错误示例: List<CollectionBean> list = new ArrayList<CollectionBean>(); CollectionBean bean = new CollectionBean(); for (int i=0 , i<10 , i++) { //不能再while外面创建这个对象,这是一个非常有技术含量的问题 bean.setId(i)原创 2020-06-22 11:26:32 · 237 阅读 · 0 评论 -
Java获取 “ 指定范围 ” 并且 “ 指定小数位数 ” 的随机数。
直接上代码:public class RandomUtil { /** Max是最大数,Min是最小数, * setScale的2是指定小数位数 * BigDecimal.ROUND_HALF_UP是四舍五入 * doubleValue()是把BigDecimal转为double类型 * / public static double getRandomNumber(int Max,int Min){ double randomNumber = new BigDecimal原创 2020-06-22 10:00:17 · 585 阅读 · 0 评论 -
记录一次比较傻的JAVA与MYSQL之间的时间差问题
如图,明明查的是15-16点,结果出现16-17点。时区是GMT+8,这也没毛病呀?预编译的也是15-16点,为什么出现这个结果呢?原创 2020-06-20 17:24:29 · 153 阅读 · 0 评论 -
最正确的@DateTimeFormat和@JsonFormat解析,顺便说下 json对象和json字符串的区别
1.前端传给后端1.1 当前端传来的是json对象,用@DateTimeFormat 规定接收的时间格式。1.2 当前端传来的事json字符串,后台用@ReuqestBody接收,用@JsonFormat 规定接收的时间格式。注: json对象是 { " x " : " y " } , json字符串是 ’ { " x " : " y " } ’ ,说白了就是json字符串比json对象的最外面多了一对单引号。2.后端 传给 前端。2.1 后端返回给前端的时间值,只能用@JsonFormat原创 2020-06-15 14:53:02 · 301 阅读 · 0 评论 -
JAVA实现生成菜单树
需求: 从数据库中查找出所有菜单项,然后根据父子关系进行拼接封装形成一个菜单树。效果图:思路实体类必备字段:id,parent_id,List<实体类> children从数据库中根据条件(例如公司id)查找出该条件下所有的菜单项,形成一个List。遍历这个List转为一个Map,其中Map的key为该菜单项的唯一标示(通常是id),value为电房实体类。先创建一个返回给前端的集合Set,然后对这个Map进行遍历(我用的是Map的values()方法)遍历Map的values原创 2020-06-13 11:50:23 · 1539 阅读 · 0 评论 -
jdk8中list转map的两种方法
/** * 把list转为Map<Long, String> 的形式,其中Long和String都可以改为自己的类型 * 其中accounts为list集合,account是集合元素,getId和getUsername都是集合元素的方法*/public Map<Long, String> listToMap(List<Account> accounts) { return accounts.stream().collect(Collectors.to.原创 2020-06-12 15:25:33 · 3535 阅读 · 0 评论 -
JavaBean的概念:VO,DTO,PO,BO,DAO。以上都是属于Javabean。
Web Service就是我们自己项目中的前端界面。(举个例子:VO就是表单提交的封装对象) APIService就是其他项目的接口(举个例子:DTO就是传感器传过来的对象,也可以是使用支付宝接口时传过来的对象)。 ServiceLayer 就是控制层(SpringMVC中的controller层)。 BusinessLayer就是业务层(SpringMVC中的service层)。 PersistenceLayer就是持久层(SpringMVC中的dao层)。PS: 在项目中不一定需要严格区分..原创 2020-06-12 09:44:17 · 347 阅读 · 0 评论 -
Mybatis批量插入语句,再加上自己封装的自动生成由实体类的所有字段拼接成的字符串,改下实体类的名字就可以用。
<insert id="batchInsert" parameterType="java.util.List" > insert into ele_monitor( 语句1 ) values <foreach collection="list" index="index" item="item" separator=","> ( 语句2 ) </foreach></inser.原创 2020-06-09 13:11:00 · 393 阅读 · 0 评论 -
java 获取实体类的所有属性值
public void getValuesSqlString(){ Monitor monitor = new Monitor(); Class monitorClass = monitor.getClass(); Field[] fields = monitorClass.getDeclaredFields(); System.out.println(fields.length); for(int i=0; i<fie.原创 2020-06-09 12:44:48 · 2129 阅读 · 1 评论 -
HttpEntity转为java的工具类
public static Map HttpEntityToMap(HttpEntity httpEntity) throws IOException { //先把HttpEntity转为字符串,再把字符串转为json对象 JSONObject object = new JSONObject().parseObject(EntityUtils.toString(httpEntity)); Map<String, Object> map =new .原创 2020-06-09 10:48:18 · 898 阅读 · 0 评论 -
一道值得深思的String判断题
String s1 = "java";String s2 = "php";String s3 = "javaphp";String s4 = "java" + "php";String s5 = s1 + "php";String s6 = "java" + s2;String s7 = s1 + s2;System.out.println(s3 == s4);//trueSystem.out.println(s3 == s5);//falseSystem.out.println(..原创 2020-05-14 22:13:14 · 127 阅读 · 0 评论 -
图文解释JavaWEB中的访问路径问题
原创 2020-04-03 13:50:33 · 116 阅读 · 0 评论 -
JAVA之 int.class 与 Integer.class 的关系
public class Test { public static void main(String[] args) { Class a = int.class; Class b = Integer.TYPE; Class c = Integer.class; System.out.println(System.identityHashCode(a)); S...原创 2020-03-25 16:58:59 · 857 阅读 · 0 评论 -
JAVA之Comparable接口
一, 为何需要实现Comparable接口我们知道Collections类中包含很多对实现Collection接口的容器各种操作的静态方法.当然, 其中最长用的莫过于排序了(Collections.sort(List l).下面是1个简单例子: public class Compare1{ public static void f(){...转载 2020-03-25 14:52:57 · 300 阅读 · 1 评论 -
JAVA之为什么重写equals时要重写hashcode
首先,如果是自定义的类重写equals后可以实现逻辑的比较是否相等。如:Person a = new Person(1996001002); //id为身份证Person b = new Person(1996001002); //id为身份证System.out.println("对象比较"+ a.equals(b));但是在用哈希结构作为储存的类中会先用hashcode...原创 2020-03-17 17:51:42 · 99 阅读 · 0 评论 -
Java基础之float与double的精度问题
如图:结果:代码:public class Main { public static void main(String[] args) { //float占用4个字节,有效位数7位,多出的四舍五入 System.out.println("float最大位数:"+0.9999999f); System.out.pr...原创 2020-03-17 13:10:37 · 202 阅读 · 0 评论 -
Java基础之private package protected public的访问权限
绿色代表可以,红色代表禁止原创 2020-03-09 12:41:50 · 193 阅读 · 0 评论 -
Java的逻辑运算符易错点
public class HelloWorld { public static void main(String[] args) { //长路与 无论第一个表达式的值是true或者false,第二个的值,都会被运算 int i = 2; System.out.println( i== 1 & i++ ==2 ); //无...原创 2020-03-09 10:03:27 · 182 阅读 · 0 评论