当前位置: 首页 > news >正文

网站制作公司上海推广平台排行榜app

网站制作公司上海,推广平台排行榜app,独立商城系统网站建设等服务,保定哪家做网站好概述 很多Java开发如果想转Golang的话,比较让Java开发蛋疼的第一是语法,第二是一些思想和设计哲学的Gap,所以我这儿强行整理一波Java和Golang的对比,但是由于GO和Java在很多方面都有不同的设计,所以这些对比的项可以更…

概述

很多Java开发如果想转Golang的话,比较让Java开发蛋疼的第一是语法,第二是一些思想和设计哲学的Gap,所以我这儿强行整理一波Java和Golang的对比,但是由于GO和Java在很多方面都有不同的设计,所以这些对比的项可以更好的让Java开发理解是什么。

主题和概念对比

Go 概念/主题Go 示例Java 对应Java 示例
调试源代码使用 delve 等调试器进行调试使用 IDE 或 JDB 进行调试在 Eclipse、IntelliJ 等 IDE 中设定断点或使用 jdb 命令行工具
编译过程go build 命令编译 .java 文件到 .class 文件使用 javac ClassName.java
词法分析和语法分析go/parser 包ANTLR, JavaCC 等库使用 ANTLR 生成的解析器解析代码
类型检查go/types 包Java 编译器自带的类型检查编译过程中自动完成
中间代码生成Java ByteCode 是中间表示形式使用 javac 编译时自动生成
机器码生成Go 编译器生成机器码JVM 执行 Java ByteCode 生成机器码JVM 在运行时完成
数组var a [5]intJava 数组int[] a = new int[5];
切片var s []intList 接口实现类,如 ArrayList
[学习链接](逐步学习Go-集合(Arrays, Slices,Map,Set))
List<Integer> s = new ArrayList<>();
哈希表map[string]intMap 接口实现类,如 HashMapMap<String, Integer> m = new HashMap<>();
字符串var str stringString 类String str = "example";
函数调用func callFunction(a int) {}Java 方法调用public void callFunction(int a) {}
接口type Reader interface { Read(p []byte) (n int, err error) }Java 接口interface Reader { int read(byte[] p) throws IOException; }
反射reflect 包java.lang.reflect 包使用 Class.forName() 等方法
for 和 rangefor i, v := range slice { ... }for-each 循环for (Type v : iterable) { ... }
select (多路复用)select { case <-ch1: ... case <-ch2: ... }
学习链接
N/A无直接对等,可使用 Selector 和 NIO
channelch := make(chan int, 1)
go channel可以认为是同步和队列,无缓冲为同步,有缓冲为队列。 学习链接
BlockingQueueBlockingQueue q = new ArrayBlockingQueue(1024);
协程(goroutine)go func(){println("hello world")}(), 轻量级线程,学习
Virtual Thread, JDK 19引入, Thread thread = Thread.startVirtualThread(() -> {
defer (延迟执行)defer fmt.Println("done")try-finallytry { ... } finally { System.out.println("done"); }
panic 和 recoverfunc() { defer recover(); panic("error") }()抛出异常和捕获异常try { throw new Exception("error"); } catch (Exception e) { ... }
make 和 new (内存分配)make([]int, 0) 和 new(int)new 关键字,以及集合类的构造器new int[0] 和 Integer i = new Integer(0);
上下文 Contextcontext 包无直接对等,可以创建自定义类或使用线程本地变量使用 ThreadLocal<T> 存储上下文相关数据
同步原语和锁sync 包中的 Mutex 和 WaitGroupjava.util.concurrent 包中的 Locks等ReentrantLock 和 CountDownLatch 类
定时器time.After 和 time.NewTickerjava.util.Timer 和 ScheduledThreadPoolExecutorTimer 和 ScheduledExecutorService
Channel (协程间通信)ch := make(chan int)java.util.concurrent 中的 BlockingQueueBlockingQueue<Integer> queue = new LinkedBlockingQueue<>();
调度器Go 语言运行时调度器Java 线程调度器(JVM运行时管理)JVM负责线程调度
网络轮询器net 包NIO 的 SelectorSelector selector = Selector.open();
系统监控runtime 和 expvar 包JMX (Java Management Extensions)使用 MBeanServer 监控应用
内存分配器Go 语言运行时内存分配JVM内存分配JVM自动管理
垃圾收集器Go 语言的垃圾收集器JVM 的 GCJVM自动管理,可以使用 -XX:+UseG1GC 等JVM参数
栈内存管理Go 语言运行时栈管理JVM栈管理JVM自动管理
插件系统plugin 包OSGi 或者自定义 ClassLoader使用 OSGi 框架
代码生成go generate 和 AST 操作Annotation Processing Tool (APT)使用 Java 注解处理器生成代码
JSONencoding/json 包org.json 或 Jackson 等库使用 Jackson 的 ObjectMapper
HTTPnet/http 包java.net.HttpURLConnection 或 HttpClient使用 HttpURLConnection 或 Apache HttpClient
数据库database/sql 包JDBC使用 java.sql.Connection 等类
GinWeb框架Spring Boot
BeegoWeb框架Spring Boot
OOPinterface/ struct, Go中interface是一个类型,接口定义方法,struct只要实现了interface定义的所有方法就实现了这个interface 学习链接interface / classJava直接定义一个接口,一个class implements 接口,比如: class Person implements Human
sync.WaitGroup等待一组操作完成的同步原语
学习链接1
学习链接2
CountDownLatch, CyclicBarrier,Semaphore
sync.Once整个应用声明周期中只执行一次
学习连接
AtomicBooleanJava中没有直接对应,但是根据sync.Once的底层实现,其实就是原子变量+锁来保证的,所以使用AtomicBoolean来对应是没有问题的
sync.MutexReentrantLock
sync.RWMutex读写锁ReentrantReadWriteLock
http://www.hkea.cn/news/710143/

相关文章:

  • 2022网页设计尺寸规范和要求怎么做seo关键词优化
  • 北京大学两学一做网站十大收益最好的自媒体平台
  • 网站开发服务费企业网站建设的一般要素
  • 台州企业网站制作公司郴州网站推广
  • 如何做移动端网站邮件营销
  • 网站制作佛山crm管理系统
  • 网站综合营销方案设计网页设计教程
  • 东莞做网站制作宁波技术好的企业网站制作
  • 广州做网站公司哪家好如何注册一个网站
  • 网站备案协议书互联网营销师证书含金量
  • 广州企业网站建设报价免费推广网站大全
  • 宁波网站排名怎么提交网址让百度收录
  • 杭州 手机网站建设活动营销
  • 加网络网站建设工作室做一个企业网站大概需要多少钱
  • 张家港优化网站seo百度网盘下载
  • 烟台有没有做网站网站安全
  • 网站建设与制作设计公司惠州seo代理商
  • 东营新闻网今日头条常州网站seo
  • 东莞全网合一网站黄页引流推广网站软件免费
  • wordpress的数据库在那里百度seo如何快速排名
  • wordpress手机客服代码免费seo快速排名工具
  • web网站开发作品关键词歌词图片
  • 汕头行业网站seo培训公司
  • 网站背景图片优化关键词歌曲免费听
  • 郑州做网站哪家专业我要发布信息
  • 西安做网站优化的公司石家庄seo按天扣费
  • 2022年西安封城通知自动app优化下载
  • 无锡做网站哪家公司好一个公司可以做几个百度推广
  • 专题网站建设工作关键词林俊杰无损下载
  • adobe 网站开发软件软文写作兼职