实例变量

JavaSE基础(五)--Java运算符

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-06 01:12:39
Java 运算符 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组: 算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 其他运算符 算术运算符 算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。 表格中的实例假设整数变量A的值为10,变量B的值为20: 操作符 描述 例子 + 加法 - 相加运算符两侧的值 A + B 等于 30 - 减法 - 左操作数减去右操作数 A – B 等于 -10 * 乘法 - 相乘操作符两侧的值 A * B等于200 / 除法 - 左操作数除以右操作数 B / A等于2 % 取余 - 左操作数除以右操作数的余数 B%A等于0 ++ 自增: 操作数的值增加1 B++ 或 ++B 等于 21(区别详见下文) -- 自减: 操作数的值减少1 B-- 或 --B 等于 19(区别详见下文) 实例 下面的简单示例程序演示了算术运算符。复制并粘贴下面的 Java 程序并保存为 Test.java 文件,然后编译并运行这个程序: 实例 public class Test {   public static void main ( String [ ] args ) {     int a = 10 ;     int b = 20 ;   

关于servlet线程安全问题

独自空忆成欢 提交于 2019-12-06 00:48:16
Servlet/JSP技术和ASP、PHP等相比,由于其多线程运行而具有很高的执行效率。由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的 安全性 问题。然而,很多人编写Servlet/JSP程序时并没有注意到多线程安全性的问题,这往往造成编写的程序在少量用户访问时没有任何问题,而在并发用户上升到一定值时,就会经常出现一些莫明其妙的问题。 Servlet的多线程机制 Servlet体系结构是建立在Java多线程机制之上的,它的生命周期是由Web容器负责的。当客户端第一次请求某个Servlet时,Servlet 容器将会根据web.xml配置文件实例化这个Servlet类。当有新的客户端请求该Servlet时,一般不会再实例化该Servlet类,也就是有 多个线程在使用这个实例。Servlet容器会自动使用线程池等技术来支持系统的运行, 这样,当两个或多个线程同时访问同一个Servlet时,可能会发生多个线程同时访问同一资源的情况,数据可能会变得不一致。所以在用Servlet构建的Web应用时如果不注意线程安全的问题,会使所写的Servlet程序有难以发现的错误。 Servlet的线程安全问题 Servlet的线程安全问题主要是由于实例变量使用不当而引起的,这里以一个现实的例子来说明。 Import javax.servlet. *;

深入理解static关键字

泄露秘密 提交于 2019-12-05 18:54:58
在开始讲static之前,我想让各位看一段有意思的代码: public class Test { static{ System.out.println("test static 1"); } static{ System.out.println("test static 2"); } public static void main(String[] args) { } } 看完程序,小白童鞋发话了:啥玩意?main方法中啥都没有,能运行啥?博主你个星星星... 运行结果: test static 1 test static 2 小白童鞋:那啥...那啥...博主我说啥了,我啥都没说... 其实,上面的代码懂的自然懂,不懂的自然就不懂了,因为上面的代码涉及到JVM的类加载了!当然不在本篇博客文章的范畴内,如果有兴趣理解上面的程序,这篇文章可能会对你有所帮助 别翻了,这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析【JVM篇二】 1、static存在的主要意义 static的主要意义是在于创建独立于具体对象的域变量或者方法。 以致于即使没有创建对象,也能使用属性和调用方法 ! static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能 。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候

【搞定 Java 并发面试】面试最常问的 Java 并发进阶常见面试题总结!

大兔子大兔子 提交于 2019-12-05 13:46:24
本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star!【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。觉得内容不错再 Star!)。 另外推荐一篇原创: 终极推荐!可能是最适合你的Java学习路线+方法+网站+书籍推荐! Java 并发进阶常见面试题总结 1. synchronized 关键字 1.1. 说一说自己对于 synchronized 关键字的了解 synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。 另外,在 Java 早期版本中,synchronized属于重量级锁,效率低下,因为监视器锁(monitor)是依赖于底层的操作系统的 Mutex Lock 来实现的,Java 的线程是映射到操作系统的原生线程之上的。如果要挂起或者唤醒一个线程,都需要操作系统帮忙完成,而操作系统实现线程之间的切换时需要从用户态转换到内核态,这个状态之间的转换需要相对比较长的时间,时间成本相对较高,这也是为什么早期的 synchronized 效率低的原因。庆幸的是在 Java 6 之后 Java 官方对从 JVM 层面对synchronized 较大优化,所以现在的 synchronized

《深入浅出WPF》学习总结之XAML标签语言二

青春壹個敷衍的年華 提交于 2019-12-05 12:12:42
x名称空间 “x名称空间”的这个X是映射XML名称空间时给他取的名字(如果用的是字母y,那他就叫“y名称空间了”),x名称空间里的成员(x.name、x.class)是专门给XAML编译器看的、用来引导XAML编译器把XAML代码编译成CLR代码的。大凡包含XAML代码的WPF程序都需要引用xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"命名空间 x命名空间里都有什么 x名称空间映射的是xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml",他所包含的类均与解析XAML语言相关,所以也可以称它"XAML"名称空间,与C#语言一样,XAML也有自己的编译器。XAML语言会被解析并编译,最终形成微软中间语言存储在程序集中。在解析和编译XAML语言过程中,我们经常需要告诉编译器一些重要的信息,比如XAML代码的编译结果应该与哪个C#代码的编译结果合并、使用XAML声明的元素是public还是privated访问级别等等。这些让程序员能够与XAML编译器沟通的工具就存放在x名称中间中。 x名称空间中包含的工具 名称 种类(在XAML中出现的形式) x:Array 标记扩展 x:Class Attribute x:ClassModifier Attribute x:Code

Java基础知识

走远了吗. 提交于 2019-12-05 11:21:29
1. 面向对象和面向过程的区别 面向过程 优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点: 没有面向对象易维护、易复用、易扩展 面向对象 优点: 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 缺点: 性能比面向过程低 2. Java 语言有哪些特点 简单易学; 面向对象(封装,继承,多态); 平台无关性( Java 虚拟机实现平台无关性); 可靠性; 安全性; 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持); 支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java 语言不仅支持网络编程而且很方便); 编译与解释并存; 3. 什么是 JDK 什么是 JRE 什么是 JVM 三者之间的联系与区别 这几个是Java中很基本很基本的东西,但是我相信一定还有很多人搞不清楚!为什么呢?因为我们大多数时候在使用现成的编译工具以及环境的时候,并没有去考虑这些东西。 JDK: 顾名思义它是给开发者提供的开发工具箱,是给程序开发者用的。它除了包括完整的JRE(Java Runtime

杂记5

你说的曾经没有我的故事 提交于 2019-12-05 09:48:56
@Autowired 对构造函数使用@Autowired,更加好。@Autowired修饰变量,构造函数执行后再Auto wired,会报错,因为顺序是先静态变量或静态语句块–>实例变量或初始化语句块–>构造方法–>@Autowired。 接口和impl 大型项目中最好对控制器做好接口然后再实现,这样之后容易改。(都这么说,反正没做过大型项目) slf4j 日志工具类 import org.slf4j.Logger; import org.slf4j.LoggerFactory; Calendar 日历工具类 来源: https://www.cnblogs.com/bestefforts/p/11919818.html

activiti笔记

社会主义新天地 提交于 2019-12-05 06:14:18
activiti笔记 核心api api介绍 1.ProcessEngine 说明: 1) 在Activiti中最核心的类,其他的类都是由他而来。 2) 产生方式: ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); 3) 各service的作用 RepositoryService 管理流程定义 RuntimeService* *** 执行管理,包括启动、推进、删除流程实例等操作 TaskService 任务管理 HistoryService 历史管理(* *执行完的数据的管理)** IdentityService 组织机构管理 FormService 一个可选服务,任务表单管理 ManagerService 2.ProcessDefinition 流程定义类。可以从这里获得资源文件等。 3.ProcessInstance 代表流程定义的执行实例。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。 流程实例就表示一个流程从开始到结束的最大的流程分支 ,即一个流程中流程实例只有一个。 一、流程部署 1、部署流程定义 RepositoryService 流程部署的核心service ​ //部署流程 DeploymentBuilder

深入研究Servlet线程安全性问题

旧时模样 提交于 2019-12-05 04:14:06
Servlet/JSP技术和ASP、 PHP 等相比,由于其多线程运行而具有很高的执行效率。由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的安全性问题。然而,很多人编写Servlet/JSP程序时并没有注意到多线程安全性的问题,这往往造成编写的程序在少量用户访问时没有任何问题,而在并发用户上升到一定值时,就会经常出现一些莫明其妙的问题。 Servlet的多线程机制 Servlet体系结构是建立在Java多线程机制之上的,它的生命周期是由Web容器负责的。当客户端第一次请求某个Servlet时,Servlet容器将会根据web.xml配置文件实例化这个Servlet类。当有新的客户端请求该Servlet时,一般不会再实例化该Servlet类,也就是有多个线程在使用这个实例。Servlet容器会自动使用线程池等技术来支持系统的运行. 这样,当两个或多个线程同时访问同一个Servlet时,可能会发生多个线程同时访问同一资源的情况,数据可能会变得不一致。所以在用Servlet构建的Web 应用 时如果不注意线程安全的问题,会使所写的Servlet程序有难以发现的错误。 Servlet的线程安全问题 Servlet的线程安全问题主要是由于实例变量使用不当而引起的,这里以一个现实的例子来说明。 Import javax.servlet. *;

volatile的理解

岁酱吖の 提交于 2019-12-05 03:46:48
Volatile相当于一个轻量级的锁,作用是保证变量在线程之间的可见性。 可见性指的是一个线程修改了这个变量,会被其他线程读取到。 (插一句:synchronized的锁,如果锁的是普通方法,那么锁住的就是一个实例,如果要发挥作用,那调用的需要获取的是同一把锁,也就是这个对象只能new 一个实例) 来源: https://www.cnblogs.com/1023linlin/p/11903438.html