wechat

Java文本块

女生的网名这么多〃 提交于 2020-07-24 06:01:27
文本块是 JDK 增强建议**(JEP 355) ,可以在 JDK13 和 JDK14 中作为预览语言功能使用。它计划在 JDK15**中成为永久性功能。文本块是一个字符串文字,它跨越多行,并且不需要大多数转义字符。 动机 在标准Java字符串中嵌入 XML 、 JSON 或 SQL 之类的格式会变得很烦人。例如,由于需要转义,因此只有两个键的简单 JSON 代码片段在 Java 中几乎无法流畅阅读: String json = "{\n" + "\"name\": \"FunTester\",\n" + "\"age\": 30\n" + "}"; 文本块来拯救 使用新的文本块功能,我们可以将代码重写为: String text = """ { "name": "FunTester", "age": "30" } """; 使用三引号**"""**打开和关闭文本块。文本从下一行开始。打开文本块后,该行的其余部分需要保持空白。 如果我们将此字符串打印到控制台,我们将看到: { "name": "FunTester", "age": "30" } 可能你已经注意到,左侧的缩进已被去除。这是因为文本块的处理分为三个步骤: 行终止符被标准化为 LF 字符。这样可以避免不同平台(例如 Windows 和 Unix )之间的兼容性问题。 附带的前置空格和所有尾随空格均被删除

46张PPT弄懂JVM、GC算法和性能调优!

人盡茶涼 提交于 2020-07-24 01:04:12
作者:cyfonly cnblogs.com/cyfonly/p/5807121.html 2019-05-06 10:12:39 本PPT从JVM体系结构概述、GC算法、Hotspot内存管理、Hotspot垃圾回收器、调优和监控工具六大方面进行讲述。 好东西当然要分享,PPT已上传可供下载(关注Java技术栈微信公众号,在后台回复: JVM46 ,即可获取完整PPT,另外良心推荐阅读《 深入理解Java虚拟机JVM高级特性与最佳实践 》 导航 JVM体系结构概述 此PPT长达46页,全部展示篇幅过长,随意抽出9张作为展示。 关注Java技术栈微信公众号,在后台回复" JVM46 " 即可获取完整版,干货满满。 推荐去我的博客阅读更多: 1. Java JVM、集合、多线程、新特性系列教程 2. Spring MVC、Spring Boot、Spring Cloud 系列教程 3. Maven、Git、Eclipse、Intellij IDEA 系列工具教程 4. Java、后端、架构、阿里巴巴等大厂最新面试题 觉得不错,别忘了点赞+转发哦! 来源: oschina 链接: https://my.oschina.net/javaroad/blog/4279542

为什么 Java 线程没有 Running 状态?

断了今生、忘了曾经 提交于 2020-05-09 20:54:25
作者:国栋 https://my.oschina.net/goldenshaw/blog/705397 Java虚拟机层面所暴露给我们的状态,与操作系统底层的线程状态是两个不同层面的事。具体而言,这里说的 Java 线程状态均来自于 Thread 类下的 State 这一内部枚举类中所定义的状态: 什么是 RUNNABLE? 直接看它的 Javadoc 中的说明: 一个在 JVM 中执行的线程处于这一状态中。(A threadexecuting in the Java virtual machine is in this state.) 而传统的进(线)程状态一般划分如下: 注:这里的进程指早期的单线程进程,这里所谓进程状态实质就是线程状态。那么 runnable 与图中的 ready 与 running 区别在哪呢? 与传统的ready状态的区别 更具体点,javadoc 中是这样说的: 处于 runnable 状态下的线程正在 Java 虚拟机中执行,但它可能正在等待来自于操作系统的其它资源,比如处理器。 A thread in the runnable state is executing in the Java virtual machine but it may be waiting forother resources from the operating system

【wechat pay】

匆匆过客 提交于 2020-05-08 13:20:30
https://blog.csdn.net/jiemaio/article/details/84958288 https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5 http://www.vue111.net/wangluo/77722.html https://www.shangmayuan.com/a/2865877cb80946aab3487b11.html 来源: oschina 链接: https://my.oschina.net/u/4370323/blog/4270242

【wechat login】

爱⌒轻易说出口 提交于 2020-05-08 13:16:00
https://lucent.blog/passages/vue%E5%AE%9E%E7%8E%B0%E5%86%85%E5%B5%8C%E4%BA%8C%E7%BB%B4%E7%A0%81%E5%BE%AE%E4%BF%A1%E7%99%BB%E5%BD%95/ https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html 来源: oschina 链接: https://my.oschina.net/u/4339204/blog/4270243

13. Go 语言异常机制:panic 和 recover

邮差的信 提交于 2020-05-08 09:52:21
Hi,大家好,我是明哥。 在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。 我的在线博客: http://golang.iswbm.com 我的 Github:github.com/iswbm/GolangCodingTime 编程语言一般都会有异常捕获机制,在 Python 中 是使用 raise 和 try-except 语句来实现的异常抛出和异常捕获的。 在 Golang 中,有不少常规错误,在编译阶段就能提前告警,比如语法错误或类型错误等,但是有些错误仅能在程序运行后才能发生,比如数组访问越界、空指针引用等,这些运行时错误会引起程序退出。 当然能触发程序宕机退出的,也可以是我们自己,比如经过检查判断,当前环境无法达到我们程序进行的预期条件时(比如一个服务指定监听端口被其他程序占用),可以手动触发 panic,让程序退出停止运行。 1. 触发panic 手动触发宕机,是非常简单的一件事,只需要调用 panic 这个内置函数即可,就像这样子 package main func main() { panic("crash") } 运行后,直接报错宕机 $ go run main.go go

Python-定时爬取指定城市天气(一)-发送给关心的微信好友

北战南征 提交于 2020-05-08 06:44:16
一、背景 上班的日子总是3点一线,家里,公司和上班的路径,对于一个特别懒得我来说,经常遇到上班路上下雨了,而我却没带伞,多么痛的领悟。最近对python有一种狂热的学习热情,写了4年多的C++代码,对于python我不能说简单,但是他做东西确实太快了,现有的第三方资源真的炒鸡多,用的我也是不亦乐乎。除了上班忘记带伞,每天重复性的工作还有很多,比如上下班打卡、每个礼拜的周报,还有如果有关心的女神,也可以做定时发送心里话,或者定时提醒等各种服务。有时候想如果有一个人能按时提醒我就好了,这种想法也就停留了那么几分钟就被自己pass掉了,因为别人也可能忘记啊。。。那么这件事是不是可以交给程序来做呢!毕竟程序可是会老老实实的做重复性的工作,而且他们乐此不疲。 上述问题的场景大多都是需要程序在指定时间、或者指定场合提醒我们该干什么了,本篇文章就定时天气提醒服务来做开篇,讲述使用Python怎么完成这样一个任务,既然这样,那我们就开始构思我们的程序吧 二、构思 看过背景中的需求描述,要实现这个功能,我们需要解决以下这么几个问题: 1、爬取天气信息,那么接下来就产生第二个问题了 2、动态获取指定城市天气 3、发送天气信息给指定微信好友 4、定时触发爬取动作 5、怎么关联微信账号 下面我们将一步一步解决上述几个问题,并实现我们的需求 三、爬取天气 解决问题1: 对于使用过爬虫的同学来说

天天用Synchronized,底层原理是个啥?

ぃ、小莉子 提交于 2020-05-07 19:30:46
作者:iuxiaopeng https://www.cnblogs.com/paddix/p/5367116.html Synchronized 的基本使用 Synchronized 的作用主要有三个: 确保线程互斥的访问同步代码 保证共享变量的修改能够及时可见 有效解决重排序问题 从语法上讲,Synchronized 总共有三种用法: 修饰普通方法 修饰静态方法 修饰代码块 接下来我就通过几个例子程序来说明一下这三种使用方式(为了便于比较,三段代码除了 Synchronized 的使用方式不同以外,其他基本保持一致)。 没有同步的情况 代码段 1: package com.paddx.test.concurrent; public class SynchronizedTest { public void method1(){ System.out.println("Method 1 start"); try { System.out.println("Method 1 execute"); Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Method 1 end"); } public void method2(){ System

本周AI热点回顾:动森首届「AI 顶会」即将召开、《我的世界》里搭建神经网络、一位中国博士把整个CNN都给可视化了

♀尐吖头ヾ 提交于 2020-05-07 19:18:57
01 重要通知:动物森友会首届「AI 顶会」ACAI 2020即将召开 众所周知,因为疫情的原因,ICML、ICLR、CVPR 等人工智能顶级会议都已经改为了线上举办。 自从 AAAI 2020 之后,今年内大概率不会再有线下举办的 AI 会议了。比如这几天正在举办的 ICLR 2020,原本打算远赴非洲参会的人们,现在只能是网络一线牵。 正在线上举行的 AI 顶会 ICLR 2020 有一个口袋妖怪风格的虚拟环境「ICLR Town」,参会者在这个环境中的形象与视频会议几乎同步。 网络虚拟环境成为了人们持续交流的最重要途径。继网友在《我的世界》里盖学校、举办毕业典礼之后,AI 学术会议也挪到了游戏里。这次,他们看中的是 Switch 的「动物森友会」。这是个没有固定剧情的开放游戏,非常注重沟通,玩家可以在里面独自生活,不受默认的剧情、任务限制。 目前,动物森友会中的首届「AI 顶会」ACAI 2020 已经开始筹备,这一新生会议将在三个月后正式举行。 ACAI,顾名思义,就是 Animal Crossing Artificial Intelligence 的意思,虽然是在虚拟空间举办,但这场活动从规格、程序和人气上来看,和真正的学术会议相比也并不逊色。 这场 workshop 是由佛罗里达国际大学博士 Josh Eisenberg 组织举办的,他现在主要从事自然语言理解方面的研究

Java并发编程中的若干核心技术,向高手进阶!

谁说胖子不能爱 提交于 2020-05-07 14:48:42
来源:简书 http://www.jianshu.com/p/5f499f8212e7 引言 本文试图从一个更高的视角来总结Java语言中的并发编程内容,希望阅读完本文之后,可以收获一些内容,至少应该知道在Java中做并发编程实践的时候应该注意什么,应该关注什么,如何保证线程安全,以及如何选择合适的工具来满足需求。 当然,更深层次的内容就会涉及到JVM层面的知识,包括底层对Java内存的管理,对线程的管理等较为核心的问题,当然,本文的定位在于抽象与总结,更为具体而深入的内容就需要自己去实践,考虑到可能篇幅过长、重复描述某些内容,以及自身技术深度等原因,本文将在深度和广度上做一些权衡,某些内容会做一些深入的分析,而有些内容会一带而过,点到为止。 总之,本文就当是对学习Java并发编程内容的一个总结,以及给那些希望快速了解Java并发编程内容的读者抛砖引玉,不足之处还望指正。 Java线程 一般来说,在java中实现高并发是基于多线程编程的,所谓并发,也就是多个线程同时工作,来处理我们的业务,在机器普遍多核心的今天,并发编程的意义极为重大,因为我们有多个cpu供线程使用,如果我们的应用依然只使用单线程模式来工作的话,对极度浪费机器资源的。所以,学习java并发知识的首要问题是:如何创建一个线程,并且让这个线程做一些事情? 这是java并发编程内容的起点,下面将分别介绍多个创建线程