当前位置: 首页 > 编程日记 > 正文

java学习总结:3

逻辑运算

1.’!’(非)
2.与(多个条件一起满足)

Java中&&和&都是表示与的逻辑运算符,都表示逻辑运输符and,当两边的表达式都为true的时候,整个运算结果才为true,否则为false。
’&&'的短路功能,当第一个表达式的值为false的时候,则不再计算第二个表达式
’&'则两个表达式都执行。

public class Test2 {public static void main(String args[]) {//if((1==2)&(10/0)==0){//(10/0)==0出现错误//    System.out.println("Hello World");//}//解决办法,使用&&,因为(1==2)是false,所以不再判断后面的((10/0)==0),故编译器不会报错if ((1 == 2) && (10 / 0) == 0) {System.out.println("Hello World");}}}

'&'可以用作位运算符,当&两边的表达式不是Boolean类型的时候,&表示按位操作。

3.或(多个条件有一个满足)

Java中’||‘和’|'都是表示与的逻辑运算符,都表示逻辑运输符or,当两边的表达式都为false的时候,整个运算结果才为false,否则为true。

|(或)与||(短路或)
(1)相同之处:在程序中,当有其中一个表达式为true时,结果都为true;
(2)不同之处:
a. ‘|’ 当遇到类型为true的表达式时,程序还会继续向后走, 最后结果为true。
b. '||'当遇到类型为true的表达式时,程序不会向下走,但是最终结果还是true。

public class Test3 {public static void main(String args[]){//if((1==1)|(10/0)==0){//程序继续往下运行,遇到((10/0)==0)时报错//    System.out.println("Hello World");//}//解决方法if((1==1)||(10/0)==0){//程序遇到第一个为判断结果为true即停止,不再继续往下运行System.out.println("Hello World");}}
}

位运算

位运算在java中有:’&’(与)、’|’(或)、’^’(异或)、’~’、’>>’、’<<’、’>>>’
注意:’&&’、’||'并不能进行位运算
在这里插入图片描述

public class Test4 {public static void main(String args[]){int num1 = 9 ;int num2 = 11 ;//与System.out.println(num1&num2);//分析//      9:00000000 00000000 00000000 00001001//     11:00000000 00000000 00000000 00001011//'&'结果:00000000 00000000 00000000 00001001//故结果为9//或System.out.println(num1|num2);//分析//      9:00000000 00000000 00000000 00001001//     11:00000000 00000000 00000000 00001011//'|'结果:00000000 00000000 00000000 00001011//故结果为11}
}
public class Test5 {//快速计算2的3次方public static void main(String args[]){int num = 2 ;System.out.println(num<<2);//向左移两位//即由2:00000000 00000000 00000000 00000010//变为8:00000000 00000000 00000000 00001000}
}

选择结构

1.if-else结构
2.switch结构

java中switch的用法基本和C语言一样

public class Test6 {public static void main(String args[]){int num = 1 ;switch(num){case 1:{System.out.println("该数字为1");break;}case 2:{System.out.println("该数字为2");break;}case 3:{System.out.println("该数字为3");break;}default:{System.out.println("没有匹配的内容");break;}}}
}

Java的switch结构与C语言最大的区别就是java可以进行字符串判断,这是C语言没有的

public class Test6 {public static void main(String args[]){String str = "Hello World" ;switch(str){case "hello":{System.out.println("hello");break;}case "Hello World":{System.out.println("Hello World");break;}default:{System.out.println("无匹配的内容");break;}}}
}
3.循环结构
while循环和do…while循环

while(循环判断){
循环语句;
修改循环结束条件;
}
do{
循环语句;
修改循环结束条件;
}while(循环判断);
由此可以看出while循环是先判断再执行,do…while循环是先执行再判断,在条件相同的情况下,do…while循环至少执行一次,而while循环一次都不会执行。

for循环

java中的for循环与C语言的for循环用法一样

public class Test7 {public static void main(String args[]){int num = 0 ;for(int n = 1 ;n<=100;n++){num+=n;}System.out.println(num);}
}

方法(函数)的定义与使用

public static 返回值类型 方法名称(参数类型 参数变量,…){
方法体(本方法要执行的若干操作);
[return[返回值];]
}

public class Test8 {public static void main(String args[]){printf();}public static void printf(){System.out.println("*************");System.out.println("*Hello World*");System.out.println("*************");}
}
public class Test9 {public static void main(String args[]){set(100);set(3);}public static void set(int x){if(x==3){return;//遇到return方法直接结束,后面的步骤不再执行}System.out.println("x="+x);}
}
方法的重载

方法的重载简单地来说就是可以定义多个相同名称的方法进行不同的操作

public class Test1_1 {public static void main(String args[]){System.out.println("两个整型参数:"+add(10,20));System.out.println("三个整型参数:"+add(10,20,30));System.out.println("两个浮点型参数:"+add(10.2,20.3));}public static int add(int x,int y){return x+y;}public static int add(int x,int y,int z){return x+y+z;}public static double add(double x,double y){return x+y;}
}

注意:
1.虽然方法的调用名称相同,但是编译器会根据其声明的参数个数或类型执行不同的方法体。
2.方法重载的时候重点是根据参数类型及个数来区分不同的方法,而不是依靠返回值的不同来确定的。

之前使用过的System.out.println()和System.out.print()也属于方法的重载

方法的递归调用
public class Test1_2 {public static void main(String args[]){System.out.println(sum(100));}public static int sum(int num){if(num==1){return 1;}return num+sum(num-1);}
}

相关文章:

asp.net httpmodule 访问页面控件 备忘

用到的时候发现还得找代码&#xff0c;存一个例子方便自己和他人修改&#xff1a; using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls;…

Ubuntu下Sublime Text 3解决无法输入中文的方法

2019独角兽企业重金招聘Python工程师标准>>> 环境&#xff1a; Ubuntu14.04搜狗输入法 for LinuxSublime text 3提示&#xff1a;编译请在非root下进行 本经验目前在Ubuntu14.04环境下&#xff0c;已有搜狗输入法 for Linux和Sublime Text 3的情况下安装成功。 保存…

电子书下载:Building Websites with DotNetNuke 5

下载&#xff1a;http://www.ctdisk.com/file/9941471 转载于:https://www.cnblogs.com/MaxWoods/archive/2012/10/10/2719167.html

Java学习总结:4

面向对象 面向对象的程序设计具有封装性、继承性、多态性。 类的定义语法如下&#xff1a; class 类名称{数据类型 属性(变量);...public 返回值的数据类型 方法名称(参数1&#xff0c;参数2...){程序语句;[return 表达式;] } }定义类 class Book {String title;double pric…

在3ds Max中使用V-Ray 5渲染引擎视频教程

在3ds Max中使用V-Ray 5渲染引擎视频教程 MP4 | 视频&#xff1a;h264, 1280x720 | 音频&#xff1a;AAC, 44.1 KHz, 2通道。AAC, 44.1 KHz, 2 Ch. 技能水平。初学者&#xff5c;类型&#xff1a;电子学习&#xff5c;语言&#xff1a;英语中文字幕&#xff08;根据原英文字幕…

OC实用转换model的工具

OC实用转换model的工具 说明 这是本人写的一个专门用来将json数据直接转换生成Model文件的工具,目的是为了让你从写Model文件的繁琐过程中解脱出来,提升效率以及减少出错的几率,工具的特点如下: 1. 用组合设计模式处理树形数据结构(非线性数据结构) 2. 在调试台中处理生成Model…

后端怎么防止重复提交?(常用的做法)

后端怎么防止重复提交&#xff1f;&#xff08;常用的做法&#xff09; 客户端的抖动&#xff0c;快速操作&#xff0c;网络通信或者服务器响应慢&#xff0c;造成服务器重复处理。防止重复提交&#xff0c;除了从前端控制&#xff0c;后台也需要控制。因为前端的限制不能解决…

利用MAC OS X 自带的磁盘工具提取光盘镜像ISO文件

虽说渐渐地Mac笔记本基本告别内置光驱时代了&#xff0c;随着网络的普及&#xff0c;使用到光驱的机会也渐少&#xff0c;但有时又难免需要光驱&#xff0c;比如二货出版社的随书光盘等…我们可以通过USB外置光驱将光盘内容提取为ISO文件保存到电脑里&#xff0c;方便以后可以随…

Java学习总结:5

面向对象 对象数组 引用数据类型也可以定义数组 格式&#xff1a; 1.对象数组的动态初始化 类名称 对象数组名称 new 类名称 [长度];动态初始化默认情况下&#xff0c;数组的每一个元素都是其对应的默认值null。 class Book5{private String title;private double price;…

Maya初学者完整的3D动画大师班视频教程

Maya初学者完整的3D动画大师班视频教程 时间13小时30分 包括课程项目文件 1280X720 MP4 语言&#xff1a;英语中文字幕&#xff08;根据原英文字幕机译更准确&#xff09;原英文字幕 教程大小解压后&#xff1a;8.38G Maya初学者。完整的3D动画大师班 百度一下 云桥网络 平台…

jQuery-1.9.1源码分析系列(四) 缓存系统

先前在分析Sizzle的时候分析到Sizzle有自己的缓存机制&#xff0c;点击这里查看。不过Sizzle的缓存只是对内使用的&#xff08;内部自己存&#xff0c;自己取&#xff09;。接下来分析jQuery可以对外使用的缓存&#xff08;可存可取&#xff09;。 首先需要明白jQuery缓存需要解…

CBA 赛程的笔记 - 北京首钢

2014-11-01 19:35北京首钢103:89广东宏远结束技术统计 发挥不错&#xff0c;打的比较好&#xff01;2014-11-05 19:35八一双鹿89:100北京首钢结束技术统计 第一节国内球员打的太屎&#xff0c;最后一节国内球员发挥不错&#xff01;2014-11-07 19:35浙江稠州107:116北京首钢结束…

个人技术生涯的感悟(2)

很多时候&#xff0c;一门门槛很低的编程语言对于初学者的帮助是非常大的&#xff0c;从而决定这个人的技术路线的选择。 在经历过大一下学期对C&#xff0c;和C的迷茫之后&#xff0c;在大二上学期&#xff0c;学校在搞一个网页设计比赛&#xff0c;正好和两个朋友一起参赛。开…

HtmlAgilityPack 处理通配的contains

//选择不包含class属性的节点 var result node.SelectNodes(".//span[not(class)]"); //选择不包含class和id属性的节点 var result node.SelectNodes(".//span[not(class) and not(id)]"); //选择不包含class"expire"的span var result node…

游戏风格化角色创建入门指南视频教程

游戏风格化角色创建入门指南视频教程 时间 33小时 包括项目文件 1920X1080 MP4 语言&#xff1a;英语中文字幕&#xff08;根据原英文字幕机译更准确&#xff09;原英文字幕 游戏中的风格化角色创建入门指南 百度一下 云桥网络 平台huo取 教程&#xff01; 信息。 教程33小…

Java学习总结:6

String类(接上篇) 字符串的拆分 public class Test1_1_2_1 {public static void main(String args[]){String str "hello world";String result[] str.split(" "); //以空格作为间隔for(int x0;x<result.length;x){System.out.print(result[x]"…

java面试常见问题之Hibernate总结

1 Hibernate的检索方式 导航对象图检索&#xff08;根据已经加载的对象&#xff0c;导航到其他对象。&#xff09; OID检索&#xff08;按照对象的OID来检索对象。&#xff09; HQL检索&#xff08;使用面向对象的HQL查询语言。&#xff09; QBC检索&#xff08;使…

HDU 4267 线段树 离散点区间更新, 自叶子节点至根单点查询

题意&#xff1a; n个数字 下面n个数字表示数列 2个操作 1 [u, v] k add [u,v ]区间 &#xff08;u点要计算&#xff09;每隔k个位置&#xff0c;该数字add 2 pos 询问 pos下标的值&#xff08;下标从1开始&#xff09; 思路&#xff1a; 因为k很小&#xff0c; 可以直接存 k…

Java学习总结:7

static关键字 一个类的主要组成就是属性和方法(分为构造方法和普通方法两种)&#xff0c;而每一个对象都分别拥有各自的属性内容(不同对象的属性保存在不同的堆内存中)&#xff0c;如果类中的某个属性希望定义为公共属性(即所有对象都可以使用的属性)&#xff0c;则可以在声明…

mybatis 使用resultMap实现数据库的操作

resultType:直接表示返回类型 resultMap&#xff1a;对外部resultMap的引用 二者不能同时使用 创建一个实体类Role和User public class Role {private Integer id;private String roleCode;private String roleName;//省略set、get方法 创建User类&#xff08;在User中有roleId…

【3DMax教程】三维产品可视化视频教程 3d Products Visualization Course

【3DMax教程】三维产品可视化视频教程 3d Products Visualization Course 三维产品可视化课程 教程大小&#xff1a;5.38G 1280X720 含课程素材文件 你会学到什么 项目简介及其必须包含的内容 蓝图以及如何获得和使用 逐步建模流程 如何制作UV和纹理 用UV投射材料 生成…

Spring MVC 和WebFlux 区别

本节主要对比了WebMvc 和 WebFlux两个Web框架,Spring已经为我们开发做了很大努力了,所以在合适的场景下这种异步框架还是非常可行的。但是还要考虑后期其它异步框架是否能够完善,全链路异步才能发挥异步最大的优势。

Cygwin鸡毛蒜皮

2019独角兽企业重金招聘Python工程师标准>>> Windows命令乱码: cygwin控制台mintty的编码缺省是UTF-8, 右键调整mintty选项[text] 改编码为GBK UNIX路径和Windows路径互转: 使用cygpath工具. 如: #cd cygpath C:\\Windows 安装包管理器apt-cyg: 安装: # svn --fo…

Using unique option prefix myisam-recover instead of myisam-recover-option

[转载]关于mysql error.log报"Using unique option prefix myisam-recover instead of myisam-recover-options ..."转载&#xff1a;http://blog.csdn.net/cloud_xy/article/details/21756601启动时日志中有这个警告的&#xff1a;[Warning] Using unique option pr…

Maya硬表面建模学习教程 Master Hard Surface Modeling in Maya 2020

Maya硬表面建模学习教程 Master Hard Surface Modeling in Maya 2020 流派:电子学习| MP4 |视频:h264&#xff0c;1280720 |音频:aac&#xff0c;48000 Hz 语言:英语 中文字幕&#xff08;机译&#xff09;原英文字幕 |大小:33.0 GB | 145节课程| (36h 18m) 你会学到什么 云…

Java学习总结:8

链表 class Node2{ //定义一个节点private String data;private Node2 next; //要保存的下一个节点public Node2(String data){ //每一个Node2对象都必须保存相应的数据this.datadata;}public void setNext(Node2 next){this.nextnext;}public Node2 getNext(){return this.…

(原创)c#学习笔记10--定义类成员03--接口的实现01--显示实现接口成员

10.3 接口的实现 在继续前&#xff0c;先讨论一下如何定义和实现接口。第9章介绍了接口定义的方式与类相似&#xff0c;使用的代码如下&#xff1a; interface IMyInterface {// Interface members. } 接口成员的定义与类成员的定义相似&#xff0c;但有几个重要的区别&#…

JVM架构解析

本文阐述了JVM的构成和组件&#xff0c;配图清晰易懂&#xff0c;是学习Java开发者的入门必读文章。 每个Java开发人员都知道字节码经由JRE&#xff08;Java运行时环境&#xff09;执行。但他们或许不知道JRE其实是由Java虚拟机&#xff08;JVM&#xff09;实现&#xff0c;JV…

cmd实用命令

1.netstat 查看电脑端口状况 实际应用举例&#xff1a;查看某软件坚监听的电脑端口。 在任务管理器中选择列...&#xff0c;打开PID的显示。在这里查看某个应用程序的线程ID是多少。例如QQ&#xff1a;4904. 运行&#xff0c;cmd&#xff0c;输入netstat -ano&#xff0c;显示当…

嵌入式BootLoader技术内幕(三)

四、 关于串口终端 在 boot loader 程序的设计与实现中&#xff0c;没有什么能够比从串口终端正确地收到打印信息能更令人激动了。此外&#xff0c;向串口终端打印信息也是一个非常重要而又有效的调试手段。但是&#xff0c;我们经常会碰到串口终端显示乱码或根本没有显示的问题…