首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Effective Java(第三版)——条目十六:公共类中使用访问方法不是公共属性

坚持面向对象的程序员觉得这样的类是厌恶的,应该被具有私有属性和公共访问方法的类(getter)所取代,而对于可变类来说,它们应该被替换为setter设值方法: // Encapsulation of data...如果类的内部表示是可取的,可以不触碰包外的任何代码的情况下进行更改。 私有内部类的情况下,更改作用范围进一步限制封闭类中。 Java平台类库中的几个类违反了公共类不应直接暴露属性的建议。...着名的例子包括java.awt包中的Point和Dimension类。 这些类别应该被视为警示性的示例,不是模仿的例子。...虽然公共类直接暴露属性并不是一个好主意,但是如果属性是不可变的,那么危害就不那么大了。...4.什么是Java线程转储(Thread Dump),如何得到? 5.为什么Thread类的sleep()和yield()方法是静态的?

81310
您找到你想要的搜索结果了吗?
是的
没有找到

Ubuntu 最新版震撼发布 !!手里的系统瞬间不香了…

通过系统设置中的(新改进的)外观面板,可以进行少量的桌面图标设置。添加到桌面的新文件夹默认出现在右下角,不是左上角,不过也可以自行进行配置。 5....还有一些其他的质量改进,以提升 App Launcher 的体验。...trash can item 现在位于 Dock 中不是桌面上,同时一个新的分隔符将 running app icons 与 pinned app icons 分开。...默认情况下,用户会看到当天的所有事件,用户也可以日历中选择一个日期来查看其他日期的事件。如果当天有活动安排,下面会有一个小"点"图标,然后日历下面的卡片中可以预览该事件。 13....现在是键盘设置的一个子版块,组织得更好、扫描速度更快,并且完全可搜索。 17. 多任务选项 系统设置应用中可以获得大量的多任务选项。

2.4K30

教师职称考计算机模块,2015教师职称计算机考试模块.doc

通过单击各面板左上角的三角形按钮将隐藏和显示各面板(对) 2、Dream weaver MX中只能对HTML文件可以进行编辑(错) 3、HTML是Hypertext Markup Language(...)的特殊字符串的普通文本文件(对) 5、Dream weaver中,可以导入外部的数据文件,还可以将网页中的数据表格导出为纯文本的数据文件(对) 选择题 6、插入栏中的Head的对象面板中包含下面那些对象...(ABCD) A、Perl B、ASP C、C D、Java 11、下面几项通过JavaScript的应用,可以来实现的是 (ABCD) A、交互式导航 B、简单的数据搜寻 C、表单验证 D、网页特效...,不是其功能的是( D) A、头部元素 B、Rulers:标尺 C、Girds:网格 D、Auto Indent:自动缩进 18、设置图像超链接时,可以Alt文本框中填入注释的文字,下面不是其作用是...(D) A、当浏览器不支持图像时,使用文字替换图像 B、当鼠标移到图像并停留一段时间后,这些注释文字将显示出来 C、浏览者关闭图像显示功能时,使用文字替换图像 D、每过段时间图像上都会定时显示注释的文字

53920

运行 JavaScript 代码片段

该功能是使用包含信息的 元素来替换主页 HTML 的主体 body。 console.log('Hello, Snippets!')...PS: 译者添加,这里的 DevTools 指的是鼠标右键 “检查” 出现的调试工具集,不是站点 DevTools。下面出现的 DevTools 同理。...编辑 snippets 打开 Snippets 面板 Snippets 面板中,点击你想要编辑的片段。Sources 面板会在 Code Editor 中打开。...运行 snippets 和创建一个片段类似,你可以通过 Snippets 面板,或者从命令面板中运行 Snippets 面板中运行一个片段 打开 Snippets 面板。...字符,后面紧跟着你想运行的片段名称。 图片 按下回车键运行该片段。 重命名 snippets 打开 Snippets 面板。 右击片段名称,然后选择重命名。

85430

深入Java Swing用户界面组件布局管理器:网格布局+面板+边界布局

解决这种问题的常见方法是使用另外一个面板(panel)。面板如同界面元素的(较小的)容器,并且布局管理器的控制之下,它们自己能够排列一个更大的面板中。...例如,可以把一个面板放在南部区域用于容纳按钮,另一个面板放在中部用于显示文本。通过嵌套面板并将边界布局与流布局混合使用,可以精确地定位组件。...如果要以更精确的方式定位组件,请参考后面的网格布局(GridBagLayout)一节。 例如,图9-10中,屏幕底部的三个按钮包含在一个面板中。这个面板被放置到内容窗格的南部。...大多数其他的容器没有这样的构造器。所有的容器都有一个用于设置布局管理器的setLayout方法。...这是一个规则的计算器,不是Java指南中的那种奇怪的计算器。在这个程序中,添加组件到框架之后,调用pack方法。这个方法用于将所有组件以最佳的高度和宽度显示框架中。

3K30

架构师学习笔记之:并发编程(图解原子操作)

程序中的体现就是一个线程执行某个任务占用某个资源操作的时候,不会被其他的线程或者任务抢走资源,直到这个任务结束释放资源,其他的线程或者任务才能使用这个资源。...在这个过程中,问题就是小明一开始按照容器里面的内容,准备了一只鸡,再他上完厕所再回来比较的时候,容器里面的鸡已经被如花替换过了,已经不是以前的鸡了。所谓此鸡非彼鸡。...看程序理解一下 结果: 理论上线程1之前取出的3已经不是现在的3了,但是依然替换成功了。...每次替换的时候都不光要提换值,还要修改印记,所以即使值一样,如果印记不一样,依然会替换失败。...所以上面的程序就是线程2量次替换,第二次把”旗木五五开“替换回”卡卡西“之后,这个"卡卡西"的印记已经不是之前的”卡卡西“的印记了,所以线程1打盹结束之后,再去CAS就失败啦!

26130

平面设计师必备的AI快捷键

一、原位粘贴技巧 CTRL+C 复制 CTRL+F 原位贴到前面 CTRL+B 原位贴到后面 二、页面切换技巧 开多个AI文档的情况下。...六、查找/替换字体时查看字体预览的小技巧 当使用AI文件使用字体显示框和可替换字体列表框中,使用右键点击字体名称,可出现文件中使用该字体的头几个文字,这样就比较容易查找和确认。...2.把字应用一下图形样式里中的默认样式,要记得是图形样式里的第一个样式默认,不是其它样式。 3.然后把字体里的描边再变成无,在这个基础上就可以应用渐变了,还能编辑字体。...使用方法:先利用钢笔工具或者其他图形工具,像你给出来的图就用圆形工具画出圆,然后用路径文本工具,当鼠标移到圆边上的时候有有反应,点击就可以输入文字了,其他路径方法相同!...首先,打开你的渐变面板,点击你要改变颜色的滑块,选择以下几种方法: 1.改变填充色(工具箱); 2.颜色面板里改变填充色; 3.色板面板中直接拖曳色块到颜色面板填充色块中; 4.颜色面板中点击底部的色谱

2.4K20

Linux学习_008_Linux下的JDK和OpenJDK有什么具体的区别

JDK7的时候,OpenJDK已经作为JDK7的主干开发,SUN JDK7是OpenJDK7的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉。...两者协议虽然都是开放源代码的,但是使用上的不同在于GPL V2允许商业上使用,JRL只允许个人研究使用。...OpenJDK不包含Deployment(部署)功能:部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,这些功能在OpenJDK中是找不到的。...部分源代码用开源代码替换:由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。...OpenIDK只包含最精简的JDK:OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。

52620

Linux下的JDK和OpenJDK有什么具体的区别

JDK7的时候,OpenJDK已经作为JDK7的主干开发,SUN JDK7是OpenJDK7的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉。...两者协议虽然都是开放源代码的,但是使用上的不同在于GPL V2允许商业上使用,JRL只允许个人研究使用。...OpenJDK不包含Deployment(部署)功能:部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,这些功能在OpenJDK中是找不到的。...部分源代码用开源代码替换:由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。...OpenIDK只包含最精简的JDK:OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。

1.2K30

(含C++、Python、Java环境配置)

下载下来之后,打开,是英文版,可以打开扩展, 搜Chinese安装中文包, 界面如下图: 先记住两个快捷键: command+shift+p: 这个是打开命令交互面板命令面板中可以输入命令进行搜索...另外, 这几个常用的快捷键最好也知道: 1.2 安装code 安装后打开命名面板Command+Shift+P,搜索shell命令,点击PAth中安装code命令,然后在上面菜单栏里面点击终端,开启一个新终端...接下来, 配置launch.json, 这个是用于使用vscode自带的debug工具(左侧的小虫图标) 交互面板下输入launch,选择Debug:Open launch.json 选择LLDB ....Test Runner: 单元测试 Maven for Java: Java环境下构建应用程序的软件 安装完毕之后....n行, D删除光标到末尾的元素, :a,bd删除a-b行文本内容 查找和替换:/查找内容进行查找,:g/a1/a2/g将文本中所有的a1用a2替换

5.7K10

(含 C++、Python、Java 环境配置)

下载下来之后,打开,是英文版,可以打开扩展, 搜 Chinese 安装中文包, 界面如下图: 先记住两个快捷键: command+shift+p: 这个是打开命令交互面板命令面板中可以输入命令进行搜索...另外, 这几个常用的快捷键最好也知道: 1.2 安装 code 安装后打开命名面板 Command+Shift+P, 搜索 shell 命令,点击 PAth 中安装 code 命令,然后在上面菜单栏里面点击终端...调试 Java Test Runner: 单元测试 Maven for Java: Java 环境下构建应用程序的软件 安装完毕之后....这样就可以愉快的写 Java 代码了, 测试下, command+shift+p, 在里面输入 Java: create Project,输入项目名, src 文件夹中,选择 Run 运行 Java...n 行, D 删除光标到末尾的元素,:a,bd 删除 a-b 行文本内容 查找和替换:/查找内容进行查找,:g/a1/a2/g 将文本中所有的 a1 用 a2 替换

3.1K30

Java 环境变量 原

JDK7 的时候,OpenJDK 已经作为 JDK7 的主干开发,SUN JDK7 是 OpenJDK7 的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉。...两者协议虽然都是开放源代码的,但是使用上的不同在于GPL V2允许商业上使用, JRL 只允许个人研究使用。...OpenJDK不包含Deployment(部署)功能:部署的功能包括:Browser Plugin、Java Web Start、以及 Java 控制面板,这些功能在 OpenJDK 中是找不到的。...部分源代码用开源代码替换:由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。...OpenIDK只包含最精简的JDK:OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。

42230

springboot代码审计学习-newbeemall审计

{} 仅仅是纯粹的 string 替换动态 SQL 解析阶段将会进行变量替换,类似于直接替换字符串,会导致SQL注入产生。...同时审计其他地方也未发现有任何的过滤或替换。但这里没有XSS成功,原因是项目使用了 thymeleaf 模板来渲染,模板自带有字符转义的功能。...这里只能通过admin面板的商品介绍处修改 抓包修改标签 前台该商品的介绍成功触发XSS 第二处 newbee_mall_goods_edit.html 中也有一处 thymeleaf 的 th...所以后面对请求的路由进行判断是应该使用 getServletPath() 来获取最后真正分发到路由地方的 path getRequestURI() 只是获取了请求的 URI 该项目对 admin 的拦截判断是这样处理的.../mall/service/impl/NewBeeMallOrderServiceImpl.java:252 可以发现这里数据库查询所使用的 订单号 并不是上面通过session获得的订单号,而用的是用户传入的

4.9K41

openJdk和sun jdk的区别

JDK7的时候,OpenJDK已经作为JDK7的主干开发,SUN JDK7是OpenJDK7的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉。...两者协议虽然都是开放源代码的,但是使用上的不同在于GPL V2允许商业上使用,JRL只允许个人研究使用。...OpenJDK不包含Deployment(部署)功能:部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,这些功能在OpenJDK中是找不到的。...3.部分源代码用开源代码替换: 由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。...4.OpenIDK只包含最精简的JDK: OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入

71510

vuejs简单介绍

概述 使用vue编写网页是一个让人愉悦的过程,同时具备angular和react的优点,轻量级,api简单,文档齐全,简单强大,麻雀虽小五脏俱全....或者filter或者是element directive,jquery时代也不是什么新鲜的东西(这并不是说指令那些不重要)....,这就把vue组件从静态的组件赋予了从外部接受参数,从而实现配置化的能力,举一个例子,一般一个面板需要有可变的标题,底部多少个按钮,是否显示后面的蒙板层,这些都可以从外部接受参数传入,从而达到组件的多样化配置...,即所谓的插槽,来实现内容的”props”,它可以组件内部定义好slot的插入点,外部html插入的时候就能指定一个插入点替换掉这个slot了,我理解的slot就是针对复杂内容的一种外部参数了,那么不复杂的内容是不是就可以不需要了...我个人觉得是的,比如你的面板可能只需要一句话,那大可以使用prop传入即可,比如alert。但是,但是,内容的可替换性还远远不算是slot的唯一不同,这里我想说一下slot内容的作用域的问题。

1.7K20

CentOS7 下rpm安装jdk1.8「建议收藏」

因此,如果您想开发企 业/商业软件,我建议您选择Oracle JDK,因为经过了彻底的测试和稳 定。...① 授权协议的不同 openjdk采用GPL V2协议放出,JDK则采用JRL放出。两者协议虽然都是开放源代码的,但是使用上的不同在于GPL V2允许商业上使用,JRL只允许个人研究使用。...---- ② OpenJDK不包含Deployment(部署)功能 部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,这些功能在Openjdk中是找不到的...---- ④ 部分源代码用开源代码替换 由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。...---- ⑤ openjdk只包含最精简的JDK OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入

81020

速读原著-Java核心技术(安装Java开发工具包)

另外, 还有一个术语是 Java 运行时环境( JRE), 包含虚拟机但不包含编译器。这并不是开发者想要的环境, 而是专门为不需要编译器的用户而提供。...下面做一个小结: 你需要的是 JDK (Java SE 开发包,) 不是 JRE。...2.1.2 设置 JDK 下载 JDK 之后,需要安装这个开发包并明确要在哪里安装,后面还会需要这个信息。 Windows 上,启动安装程序。会询问你要在哪里安装 JDK。... Windows 上, 启动控制面板,选择“ 系统与安全’(System and Security,) 再选择‘ 系 统”(System),选择高级系统设置(Advanced System Settings...注意要把_/成替换为具体的 Java 安装路径, 如 c:\Java\jdkL8.0_31。

1.2K20

Maven生命周期

虽然大多数时间里,用户几乎都不会觉察到插件的存在,但实际上编译是由maven-compiler-plugin完成的,测试是由maven-surefire-plugin完成的。...三套生命周期之间的关系: 较之于生命周期阶段的前后依赖关系,三套生命周期本身是相互独立的,用户可以仅仅调用clean生命周期的某个阶段,或者仅仅调用default生命周期的某个阶段,不会对其他生命周期产生任何影响...一般来说,是编译src/main/java目录下的Java文件至项目输出的主classpath目录中。...一般来说,是编译src/test/java目录下的Java文件至项目输出的测试classpath目录中。...在编译和生成过程中,可以Console面板中可以看到Maven编译过程的信息,如果编译和生成成功,可以Console面板看到“BUILD SUCCESS”字样。

84820

S7-1200与MCGS的高效组态(下篇)

JZGKCHINA 工控技术分享平台 尊重原创 勿抄袭 勿私放其他平台 前言 PLC和HMI是目前自动化系统中最常见的控制设备,不管是工作多年的工控老鸟还是新入行的工程师,想做自控这行,第一个需要玩转的就是哥俩...右键选择2、3、4号的水泵,属性中直接替换其偏移地址即可,无需拆开挨个改。 我们创建一个弹出窗口,用做水泵的操作面板。...添加一个关闭按钮,放在下边 最后我们建立2个数据显示,用于后面测试时检查一下偏移地址是不是正确 OK,触摸屏程序的制作就完成了!...05 操作实验 PLC里将1号和4号水泵的输入引脚填写为满足运行状态,不同的是将4号的接触器反馈填上,1号不填。 打开MCGS模拟器,点击水泵上的按钮可弹出面板,启动1号和4号水泵。...可以看到1号水泵因为没有收到接触器的运行状态报警,同时左上角的Read和Write的偏移地址与DB块中的偏移地址吻合。

91830
领券