Java初学(二)
一、数据类型
在定义Long或者Float类型变量的时候,要加L或f(大小写无关,只是便于识别,建议不要小写L)
整数默认是int,浮点数默认是double
二、java字符
java语言采用的是Unicode编码,java中一个字符占两个字节,故,java中一个字符可以表示一个汉字
三、运算符
变量可以使用++或--进行运算,常量不可以,例:10++会报意外类型错误;
++和--运算符使用:单独使用时,放在操作数前面和后面都一样
参与运算使用时,放在操作数前面,先自增或自减,然后再参与运算;放在操作数后面,先参与运算,再自增或自减
面试题:short s=1;s=s+1;
short s=1;s+=1;
以上代码有没有问题,如有请指出,并解释。
第一个有问题,编译会报“精度丢失”错误,s是short类型,s+1后变成int类型,当int类型的值赋给short类型值时会报错 第二个没有问题,因s+=1赋值运算隐含了强制类型转换,等价于s=(s的数据类型)(s+1)
四、逻辑运算符
&与&&区别:单个&,左边无论真假,右边都进行运算;双&,如果左边为真,右边进行运算,如果左边为假,右边不进行运算;双&短路效果int x=2;int y=3; (++x==2&&++y==4)为false,此刻x变为3,而y仍然是3,因双&短路,右边不执行了
|与||的区别:大致同上
异或运算符^:两边相同为true,两边不同为false
五、位运算符
&、|、^、~(&、|、^当两边是数值时做位运算,当两边是bool值时做逻辑运算)
&位与运算,有0则0;|位或运算,有1则1;^位异或运算,相同则0,不同则1(特点:某数据被另以数据位异或两次,该数据不变);~按位取反运算符
面试题:int a=10;int b=20;交换a、b的值
方法一:借助第三方变量
方法二:使用位异或运算符(左边a、b、a,右边a^b)
a=a^b;
b=a^b;//b=a^b^b =>b=a
a=a^b;//a=a^a^b =>a=b
方法三:用变量相加实现
a=a+b;//a=30
b=a-b;//b=10
a=a-b;//a=20
方法四:一句话搞定
b=(a+b)-(a=b);
六、位移运算符
<<:左移,左边最高位丢弃,右边补齐0;计算方法:左边的数据*2的移动次幂。例:3<<2 => 3*2^2=12
>>:右移,最高位是0左边补齐0,最高位是1左边补齐1;计算方法:左边的数据/2的移动次幂。例:24<<2 => 24/(2^2)=6
>>>:无符号右移,无论最高位是0还是1,左边补齐0
面试题:请用最有效率的方式计算2乘以8的结果
2<<3 => 2*2^3=2*8
Java初学(二)的更多相关文章
- Java EE : 二、图解 Cookie(小甜饼)
目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.概述 二.详细介绍Cookie 传输 ...
- 利用JAVA生成二维码
本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...
- java初学的分析
java初学的分析第一阶段:入门阶段学习目标:简单项目开发学习内容:1.Java入门书籍,Java基础知识.关于Java入门级的书,给大家推荐过<Java编程思想>.<Java核心技 ...
- java实现二维码
说起二维码,微信好像最先启用,随后各类二维码就开始流行起来了.那什么是二维码呢. 1.什么是二维码?百度一下即可 http://baike.baidu.com/view/132241.htm?fr=a ...
- Java 设计模式(二)-六大原则
Java 设计模式(二)-六大原则 单一职责原则(Single Responsibility Principle) 定义: 不要存在多余一个原因导致类变更,既一个类只负责一项职责. 问题由来: 当类A ...
- Java进阶(二十五)Java连接mysql数据库(底层实现)
Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...
- 20175212童皓桢 Java实验二-面向对象程序设计实验报告
20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...
- java 多线程二
java 多线程一 java 多线程二 java 多线程三 java 多线程四 线程中断: /** * Created by root on 17-9-30. */ public class Test ...
- Linux -- 基于zookeeper的java api(二)
Linux -- 基于zookeeper的java api(二) 写一个关于基于集群的zookeeper的自定义实现HA 基于客户端和监控器:使用监控的方法查看每个注册过的节点的状态来做出操作. Wa ...
随机推荐
- OAF中 遍历HGrid组件中的所有VO行
在HGrid组件中有如下所示的HeaderVO和LineVO 需要在头上的LOV中触发事件去更新行VO中的值,LOV事件的处理方法见 getLovParameter ,但是由于HGrid的特殊性,不能 ...
- ASP.NET中进行消息处理(MSMQ) 二
在我上一篇文章<ASP.NET中进行消息处理(MSMQ)一>里对MSMQ做了个通俗的介绍,最后以发送普通文本消息和复杂的对象消息为例介绍了消息队列的使用. 本文在此基础上继续介绍MSMQ的 ...
- 使用git推送代码到开源中国以及IDEA环境下使用git
使用git推送代码到开源中国以及IDEA环境下使用git 在学习Java的过程中我们会使用到git这个工具来将我们本周所编写的代码上传到开源中国进行代码托管,而在使用git的时候有很多的同学由于不会操 ...
- 使用logstash+elasticsearch+kibana快速搭建日志平台
日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有: * 根据关键字查询日志详情 * 监控系统的运行状况 * 统计分析,比如接口的调用次数.执行时间.成功 ...
- hadoop的统计单词程序WordCount提示找不到WordCount类
按这里的教程: http://www.imooc.com/learn/391 试验时,发现在wordcount的最后一步一直提示如下错误: Exception in thread "main ...
- Spring cloud实现服务注册及发现
服务注册与发现对于微服务系统来说非常重要.有了服务发现与注册,你就不需要整天改服务调用的配置文件了,你只需要使用服务的标识符,就可以访问到服务. 本文属于<7天学会spring cloud系列& ...
- 每天一个linux命令(32):wc命令
Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 1.命令格式: wc [选项]文件... 2.命令功能: 统计指定文件中的字节数. ...
- android学习——Android Studio下创建menu布局文件
一.问题: android studio项目中没有看到menu文件夹: 在android studio项目中想要添加menu布局文件,一开始我的做法是:直接在res文件夹右键选择xml文件来添加,如下 ...
- Asp.Net MVC 中实现跨域访问
在ASP.Net webapi中可以使用 Microsoft.AspNet.WebApi.Cors 来实现: public static class WebApiConfig { public s ...
- Java设计模式-策略模式(strategy)
策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户.需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可有可无 ...