编程语言之JAVA
文章平均质量分 81
hongyucai
每个人IT人身上都有闪光点,看到别人的优点,学习成为更好的自己。
展开
-
浅析java编程优势略举一二
如果要执行的任务是计算密集型的并且没有IO操作,推荐使用并行流parallelStream,因为实现简单效率也高,其使用的线程池ForkJoinPool.commonPool()设置的线程数默认为CPU数量-1,可最大化利用CPU,CPU密集型任务各个线程都很忙碌(运行状态),没有必要创建比核数更多的线程。对于问题3,由于在并行环境中任务的执行顺序是不确定的,因此对于依赖于顺序的任务而言,并行化也许不能给出正确的结果。applyToEither():两个任务哪个执行的快,就使用哪一个结果,有返回值。原创 2023-12-18 16:45:08 · 900 阅读 · 0 评论 -
聊一聊后端语言的差异和特性差异
假如有一个需求要实现一个统计的需求,可能不同的人会有不同的实现方式,最为掌握一门编程语言和掌握多门编程语言,以及一年工作经验的编程人员和多年的编程人员的实现思路肯定是不一样的。总结:对于同一个需求可能需要考虑基于现有编程语言的特性,已有手脚架等,在对扩展和性能以及编程规范等等进行达到最优的实现。例子一:要实现A表中某个条件下,a字段、b字段、c字段对应不同数值的出现次数。java的compute函数能统计map中出现的次数。原创 2023-12-18 15:56:00 · 504 阅读 · 0 评论 -
java编程规范-异常处理\mysql(阿里手册)
【强制】捕获异常是为了处理它,不要捕获了却什么都不处理而抛弃之,如果不想处理它,请。随意复制和粘贴代码,必然会导致代码的重复,在以后需要修改时,需要修改所有的副。【强制】业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引。另外,即使在应用层做了非常完善的校验控制,只要没有唯一索引,根据墨菲定律,必。【强制】异常不要用来做流程控制,条件控制,因为异常的处理效率比条件分支低。【强制】捕获异常与抛异常,必须是完全匹配,或者捕获异常是抛异常的父类。必要时抽取共性方法,或者抽象公共类,甚至是组件化。原创 2023-11-26 15:25:35 · 1147 阅读 · 0 评论 -
JAVA编程规范-集合、并发(阿里手册)
【强制】对多个资源、数据库表、对象同时加锁时,需要保持一致的加锁顺序,否则可能会造。这个变量是针对一个线程内所有操作共享的,所以设置为静态变量,所有此类实例共享。此静态变量 ,也就是说在类第一次被使用时装载,只分配一块存储空间,所有此类的对象。使用线程池的好处是减少在创建和销毁线程上所花的时间以及系统资源的开销,解决资。【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。体现的是适配器模式,只是转换接口,后台的数据仍是数组。原创 2023-11-26 14:11:05 · 1179 阅读 · 0 评论 -
JAVA基础JVM讲解
1、原子性使用 synchronized 互斥锁来保证操作的原子性2、可见性:volatile,会强制将该变量自己和当时其他变量的状态都刷出缓存。synchronized,对一个变量执行 unlock 操作之前,必须把变量值同步回主内存。final,被 final 关键字修饰的字段在构造器中一旦初始化完成,并且没有发生 this 逃逸(其它线程通过 this 引用访问到初始化了一半的对象),那么其它线程就能看见 final 字段的值。3、有序性。原创 2023-05-31 17:52:12 · 1139 阅读 · 0 评论 -
JAVA并发编程之多线程
3、newSingleThreadExecutor:创建一个单线程的线程池,即只创建唯一的工作者线程来执行任务,,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。1、newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理所需,可灵活回收空闲线程,若线程数不够,则新建线程。那个类然后重写run类的方法。如果无限制的创建线程,不仅会消耗系统资源,还会降低系统的稳定性,通过线程池可以进行统一的分配,调优和监控。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。原创 2023-05-31 15:31:48 · 1068 阅读 · 0 评论 -
JAVA并发编程之锁应用
Java并发包是Java中提供的一个用于支持多线程编程的工具包。Java并发包提供了多种机制来控制线程的执行,保证线程的安全性和可靠性。下面我们将介绍Java并发包的使用方法,并给出示例。java编译器会在synchronized修饰的方法或代码块前后自动Lock,unlock。synchronized修饰代码块,锁定是个obj对象,或者是一个类,sychronized(this.class)synchronized修饰静态方法,锁定是当前类的class对象。原创 2023-05-31 15:10:34 · 768 阅读 · 0 评论 -
JAVA容器类
也就是说假设实现Iterator接口,那么在遍历集合中元素的时候,仅仅能往后遍历,被遍历后的元素不会在遍历到,通常无序集合实现的都是这个接口。抽象类AbstractCollection、AbstractList和AbstractSet分别实现了Collection、List和Set接口,这就是在Java集合框架中用的非常多的适配器设计模式,用这些抽象类去实现接口,在抽象类中实现接口中的若干或所有方法,这样以下的一些类仅仅需直接继承该抽象类,并实现自己须要的方法就可以,而不用实现接口中的所有抽象方法。原创 2023-05-31 11:03:41 · 813 阅读 · 0 评论 -
JAVA基础知识问答
工作原理是这样的,创建一个字符串时,JVM首先为检查字符串常量池中是否有值相等的字符串,如果有,则不再创建,直接返回该字符串的引用地址,若没有,则创建,然后放到字符串常量池中,并返回新创建的字符串的引用地址。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。③线程的切换成本高,操作系统发生线程切换的时候,需要保留线程的上下文,然后执行系统调用,如果线程数过高可能执行线程切换的时间甚至大于线程执行的时间,这时候带来的表现是系统load偏高,CPUsy使用率很高。原创 2023-05-31 10:56:15 · 659 阅读 · 0 评论 -
认识微服务架构Spring Cloud
1.主要的子项目1)spring cloud config是配置管理工具,通过它可以把配置信息放到远程服务器中,从而集中管理集群配置。目前支持本地存储、git和subvesion三种存储方式。所有实例都可以通过config server来获取配置文件,每个服务实例相当于配置服务的客户端。2)spring cloud consul封装了consul。consul是HashiCorp公司用GO语言开发的一个服务治理软件。它包含服务治理、健康检查、Key-Value存储、多数据中心功能。3)spr原创 2021-09-21 16:44:16 · 140 阅读 · 0 评论