首页 文章 精选 留言 我的

精选列表

搜索[Java],共10000篇文章
优秀的个人博客,低调大师

java中的类修饰符、成员变量修饰符、方法修饰符

类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。 abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现(抽象方法)。 final,将一个类生命为最终(即非继承类),表示他不能被其他类继承。 friendly,默认的修饰符,只有在相同包中的对象才能使用这样的类。 说明:对于顶级类(外部类)来说,只有两种修饰符:public和默认(default)。因为外部类的上一单元是包,所以外部类只有两个作用域:同包,任何位置。因此,只需要两种控制权限:包控制权限和公开访问权限,也就对应两种控制修饰符:public和默认(default)。 如果类使用了private修饰符,说明是个内部类。内部类的上一级是外部类,那么对应的有四种访问控制修饰符:本类(private),同包(default),父子类(protected),任何位置(public)。当一个内部类使用了private修饰后,只能在该类的外部类内部使用。 1 package xiushi; 2 3 class Test1 { 4 5 private class a1{ 6 //这个就是一个内部类 7 } 8 } 成员变量修饰符: public(公共访问控制符),指定该变量为公共的,他可以被任何对象的方法访问。 private(私有访问控制符)指定该变量只允许自己的类的方法访问,其他任何类(包括子类)中的方法均不能访问。 protected(保护访问控制符)指定该变量可以别被自己的类和子类访问。在子类中可以覆盖此变量。 friendly,在同一个包中的类可以访问,其他包中的类不能访问。 final,最终修饰符,指定此变量的值不能变。 static(静态修饰符)指定变量被所有对象共享,即所有实例都可以使用该变量。变量属于这个类。 transient(过度修饰符)指定该变量是系统保留,暂无特别作用的临时性变量。 volatile(易失修饰符)指定该变量可以同时被几个线程控制和修改。 说明:静态变量与实例变量的区别 1:在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。 2:在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。 方法修饰符 public(公共控制符) private(私有控制符)指定此方法只能有自己类等方法访问,其他的类不能访问(包括子类) protected(保护访问控制符)指定该方法可以被它的类和子类进行访问。 final,指定该方法不能被重载。 static,指定不需要实例化就可以激活的一个方法。 synchronize,同步修饰符,在多个线程中,该修饰符用于在运行前,对他所属的方法加锁,以防止其他线程的访问,运行结束后解锁。 native,本地修饰符。指定此方法的方法体是用其他语言在程序外部编写的。 欢迎大家一起说出自己的想法。

优秀的个人博客,低调大师

JAVA中使用DCL双检查锁机制实现单例的多线程安全

元旦放假期间学代码,我都感动我自己啦。 试过了,OK的。 package demo.thread; public class MyObject { private static MyObject myObject ; private MyObject() { } public static MyObject getInstance() { try { if (myObject != null){ } else { Thread.sleep(3000L); synchronized (MyObject.class) { if (myObject == null){ myObject = new MyObject(); } } } } catch (InterruptedException e) { e.printStackTrace(); } return myObject; } } package demo.thread; public class MyThread extends Thread { @Override public void run() { System.out.println(MyObject.getInstance().hashCode()); } } package demo.thread; public class Run { public static void main(String[] args) { // TODO Auto-generated method stub MyThread t1 = new MyThread(); t1.start(); MyThread t2 = new MyThread(); t2.start(); MyThread t3 = new MyThread(); t3.start(); } }

优秀的个人博客,低调大师

Java微服务开发指南 -- 使用Docker和Kubernetes构建可伸缩的微服务

使用Docker和Kubernetes构建可伸缩的微服务 从现在开始,我们将从更高的维度讨论微服务,涵盖了组织敏捷性、设计和依赖的思考、领域驱动设计以及Promise理论。当我们深入使用之前介绍的三个流行的微服务框架:Spring Boot、Dropwizard和WildFly Swarm,我们能够使用它们开箱即用的能力去构建一个暴露或者消费REST服务的应用,能够使用外部环境对应用进行配置,可以打包成一个可执行的jar,同时提供Metrics信息,但这些都是围绕着一个微服务实例。当我们需要管理微服务之间的依赖、集群的启动和关闭、健康检查以及负载均衡的时候,我们使用微服务架构会面临什么问题呢?本章,我们将讨论这些高阶话题用来理解部署微服务时面对的挑战。 当我们开始将我们的应用和服务按照微服务的思路进行拆分后,我们将面临

优秀的个人博客,低调大师

《深度学习:Java语言实现》一一1.3人工智能与深度学习

1.3人工智能与深度学习机器学习是人工智能第三波浪潮中碰撞出来的火花,作为一种数据挖掘方法,它既实用又强大;然而,即便采用了这种新的机器学习方法,要实现真正的人工智能似乎依旧遥遥无期。因为定义特征一直需要人为干预,这是阻挡机器学习实现人工智能的一面高墙。看起来第三次人工智能的浪潮也会无疾而终。然而,出人意料的是,这波浪潮并未消退,反而出现了另一波新的浪潮。触发这波新浪潮的就是深度学习。随着深度学习的出现,至少在图像识别和语音识别领域,机器学习已经可以凭借自身的能力从输入数据中判断“哪些是特征值”,不再需要人工的干预。之前只能照本宣科地处理符号的机器现在也能够获得概念了。 人工智能浪潮及人工智能研究领域之间的对应关系图 从深度学习首次出现到现在已经历了漫长的时间,时间回到2006年,加拿大多伦多大学(Toronto University

优秀的个人博客,低调大师

《深度学习:Java语言实现》一一2.3监督学习和无监督学习

2.3监督学习和无监督学习前一节中,我们看到即使一个非常简单的分类问题都存在无数的边界,然而,我们很难说究竟它们中哪一个是最合适的。这是因为,即便针对已知数据我们可以恰当地分类,这也并不能保证对未知数据能够达到相同效果。不过,你可以提高模式识别的准确率。每一种机器学习方法都会设置一个标准来进行更好地模式分类,决定最佳可能的边界——决策边界——从而提高识别的准确率。毫无疑问,这些标准使用不同的方法时差异很大。在本节中,我们将介绍本书所涉及的各种方法。首先,从广义划分而言,机器学习可以分为监督学习(Supervised Learning)和无监督学习(Unsupervised Learning)。这两种分类之间的差异是机器学习使用的数据集是否加了标签,即有标数据还是无标数据。监督学习中,机器使用包含输入和输出数据的标签数据,并确定与之

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册