java学习之旅(day.04)
运算符
算术运算符:+ ,- ,* ,/,%(取余或模运算), ++(自增),-- (自减)
赋值运算符:=
关系运算符:>, <,>=, <=, ==, !=(不等于),instanceof
逻辑运算符:&&,||, !
以下了解即可
位运算符:&, |,^ ,~ ,>> ,<<, >>>
条件运算符:?:
扩展赋值运算符:+= ,-= ,*=, /=
public class Demo01 {
public static void main(String[] args) {
//二元运算符
//Ctrl+D:复制当前行到下一行
int a=10;
int b=20;
int c=25;
int d=25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
}
}
================================================================
public class Demo02 {
public static void main(String[] args) {
long a=1231561656L;
int b=123;
short c=10;
byte d=8;
System.out.println(a+b+c+d); //long
System.out.println(b+c+d); //int
System.out.println(c+d); //int
//如果有long,则结果为long
//如果有double,则结果为double
//如果没有long,则结果为int
}
}
=================================================================
public class Demo03 {
public static void main(String[] args) {
//关系运算符返回的结果:正确,错误 布尔值
int a=10;
int b=20;
System.out.println(a>b); //false
System.out.println(a==b); //false
System.out.println(a<b); //true
}
}
==================================================================
public class Demo04 {
public static void main(String[] args) {
int a=3;
int b=a++;//执行完这行代码后,先给b赋值,再自增
int c=++a;//执行完这行代码前,先自增,再给c赋值
System.out.println(a); //5
System.out.println(b);//3
System.out.println(c);//5
//幂运算:很多运算,需要借助工具类来操作
//如:2*2*2
double pow=Math.pow(2,3);
System.out.println(pow);
}
}
==================================================================
//逻辑运算符
public class Demo05 {
public static void main(String[] args) {
// 与 或 非(非你即我,取反)
boolean a=true;
boolean b=false;
System.out.println("a&&b:"+(a&&b));//逻辑与运算
System.out.println("a||b;"+(a||b));//逻辑或运算
System.out.println("!(a&&b);"+!(a&&b));//逻辑非运算
//如果是真,则为假,若是假,则为真
//短路运算:b&&a,若b为假,则不会再计算后面的b&&a,直接就停止了
int c=5;
boolean d=(c<4)&&(c++<4);
System.out.println(c); //5
System.out.println(d);//false,所以,判断c<4为假,后面的不再执行
==================================================================
package operator;
public class Demo06 {
public static void main(String[] args) {
//位运算
/*
A=0011 1100
B=0000 1101
A&B 0000 1100 上下两个位比较,如果都为1,才为1
A|B 0011 1101 上下位都为0,结果为0,否则为1
~B(取反) 1111 0010
A^B(异或运算)0011 0001 如果两个位置相同,则0,否则为1
2*8怎么运算最快?
<<(左移):相当于*2,>>(右移):相当于/2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);
}
}
=====================================================================
package operator;
public class Demo07 {
public static void main(String[] args) {
int a=10;
int b=20;
a+=b; //a=a+b
System.out.println(a); //30
//字符串连接符 +,在+两侧,只要有一侧出现了string类型,
//则会把另一侧也转换为string(字符串),再进行连接
System.out.println(""+a+b);
System.out.println(a+b+"");
//如果字符串“”在+前,后面的会进行拼接
//如果字符串“”在+后,前面的会先进行运算再拼接
}
}
======================================================================
package operator;
//三元运算符
public class Demo08 {
public static void main(String[] args) {
//x ? y : z
//如果x==true,则结果为 y,否则结果为z
int score =80;
String type =score <60?"不及格": "及格";
System.out.println(type);
}
}
运算符的优先级:
包机制
为了更好的组织类,java提供了包机制,用于区别类名的命名空间
包的本质就是个文件夹
包语句的语法格式:
package pkg1[.pkg2[.pkg3...]]
一般利用公司域名倒置作为包名
如:www.baidu.com 要建的包名为:com.baidu.www
为了能够使用某一个包的成员,我们需要在java程序中明确导入该包,使用import语句可完成此功能
import package1[.package2...].(classname|*);
Java Doc
javadoc命令是用来生成自己API文档的(将注释信息生成一个帮助文档)
参数信息
- @author 作者名
- @version 版本名
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
package com.zhang.base;
/**
* @author zhang
* @version 1.0
* @since 1.8
*/
public class Doc {
String name;
/**
* @author zhang
* @param name
* @return
* @throws Exception
*/
public String test(String name) throws Exception{
return name;
}
}
- 使用命令行cmd生成javaDoc文档(格式:javadoc 参数 jav文件)
cmd中输入:javadoc -encoding UTF-8 -charset UTF-8 Doc.java
javadoc 命令
Doc.java:文件名
中间加的参数-encoding UTF-8 -charset UTF-8是为了不使文档乱码,文档中有中文,有时会乱码
- 使用IDEA生成javaDoc文档
java 流程控制
java提供了一个工具类,可以获取用户的输入,进而实现程序和人的交互。java.util.Scanner时java5的新特征,可以通过Scanner类来获取用户的输入
基本语法:
Scanner scanner=new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前一般需要使用hasNext()与hasNextLine()判断是否还有输入的语句
package com.zhang.scanner;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描对象,用于接收键盘数据
Scanner scanner =new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
//下面这句也可写为:if (scanner.hasNext())
if (scanner.hasNext()==true){
//使用next方式接收
String str =scanner.next();
System.out.println("输出内容为:"+str);
}
//凡是IO流的类如果不关闭会一直占用资源
scanner.close();//scanner用完后及时关掉,节省空间
}
}
===================================================================
package com.zhang;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
//创建一个扫描对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextline方式接收:");
//判断用户有没有输入字符串
//下面这句也可写为:if (scanner.hasNextLine())
if (scanner.hasNextLine() == true) {
//if判断在这可以去掉,上面那个程序也一样
//使用nextLine方式接收
String str = scanner.nextLine();
System.out.println("输出内容为:" + str);
}
//凡是IO流的类如果不关闭会一直占用资源
scanner.close();//scanner用完后及时关掉,节省空间
}
}
next()
- 一定要读取到有效字符后才可以结束输入(要手动输入)
- 对输入有效字符之前遇到的空白,next()会自动将其去掉
- 只有输入有效字符后才将其后面输入的空白作为分隔符或结束符
- next()不能得到有空格的字符串
- 总之,一句话,在输入有效字符串前任你打空格,但输入了一个字符串后不能再出现空格,如果出现,只输出空格前的部分。
nextLine()
- 以enter作为结束符,也就是说,nextLine()方法返回的是输入回车之前的所有字符
- 可以获得空白
package com.zhang.scanner;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//从键盘接收数据
int i = 0;
float f = 0.0f;
System.out.println("请输入整数:");
if (scanner.hasNextInt()) {//看是不是整数
i = scanner.nextInt();
System.out.println("整数数据:" + i);
} else {
System.out.println("输入的不是整数");
}
System.out.println("请输入小数:");
if (scanner.hasNextFloat()) {//看是不是小数
f = scanner.nextFloat();
System.out.println("小数数据:" + f);
} else {
System.out.println("输入的不是小数");
}
scanner.close();
}
}
================================================================
package com.zhang.scanner;
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) {
//输入多个数字并求和与平均数,每输入一个数字用回车确认,
// 通过输入非数字来结束输入并输出执行结果
Scanner scanner= new Scanner(System.in);
double sum=0;
int m=0;//计算输入了多少个数字
while(scanner.hasNextDouble()){
double x=scanner.nextDouble();
m=m+1;
sum=sum+x;
System.out.println("你输入了第"+m+"个数据,当前结果为sum=:"+sum);
}
System.out.println(m+"个数的和为:"+sum);
System.out.println(m+"个数的平均值为:"+(sum/m));
scanner.close();
}
}
顺序结构
顺序结构是java的基本结构,除非特别指明,否则就按顺序一句一句执行,顺序结构是最简单的算法结构
选择结构
- if单选择结构
语法表达:
if(布尔表达式){
//如果布尔表达式为true执行的语句
}
- if双选择结构
语法表达:
if(布尔表达式){
//如果布尔表达式为true执行的语句
}else{
//如果布尔表达式为false执行的语句
}
package com.zhang.structure;
import java.util.Scanner;
public class IfDemo02 {
public static void main(String[] args) {
//考试分数大于60分及格,反之,不及格
Scanner scanner=new Scanner(System.in);
System.out.println("请输入分数:");
int score=scanner.nextInt();
if(score>60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
scanner.close();
}
}
- if多选择结构
语法结构
if(布尔表达式1){
//如果布尔表达式1的值为true执行代码
}else if(布尔表达式2){
//如果布尔表达式2的值为true执行代码
}else if(布尔表达式3){
//如果布尔表达式3的值为true执行代码
}else{
//如果以上布尔表达式都不为true执行代码
}
package com.zhang.structure;
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
//考试分数大于60分及格,反之,不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入分数:");
int score=scanner.nextInt();
if(score==100){
System.out.println("恭喜满分");
}else if(score>=90&&score<100){
System.out.println("优秀");
}else if(score>=60&&score<90) {
System.out.println("良好");
}else {
System.out.println("不及格");
}
scanner.close();
}
}
嵌套的if结构:可以在一个if里面嵌套另一个if语句
语法结构:
if(布尔表达式1){
//如果布尔表达式1的值为true执行代码
if(布尔表达式2){
//如果布尔表达式2的值为true执行代码
}
}
switch的多选择结构
java学习之旅(day.04)的更多相关文章
- Java学习之旅开篇:运行机制及环境搭建
在写这篇博客之前,我想对自己进行简单概括:我从事软件开发工作已经三年多了,并且一直在从事.NET相关项目的开发.为什么突然间想学习Java呢?有以下几个原因: 1. 开发程序三年多来,已经对.NET相 ...
- Java学习之旅基础知识篇:面向对象之封装、继承及多态
Java是一种面向对象设计的高级语言,支持继承.封装和多态三大基本特征,首先我们从面向对象两大概念:类和对象(也称为实例)谈起.来看看最基本的类定义语法: /*命名规则: *类名(首字母大写,多个单词 ...
- 第一篇,java学习之旅
在java的这座殿堂中,我才刚刚推开了大门,就像是在岔路口找到了一条,走向前进java大门的路. 下面是一些java算法的问题 第一题: package project.model; import j ...
- Java学习之旅(一):探索extends
鄙人为兴趣爱好,0基础入门学习Java,有些心得想法,记录于此,与君分享. 然毕竟新手,学识尚浅,错误之处,希望多多指正批评,也是对我最大的帮助! 前言:本篇文章,主要讨论在子类继承父类之后,一些继承 ...
- Java学习之旅基础知识篇:数组及引用类型内存分配
在上一篇中,我们已经了解了数组,它是一种引用类型,本篇将详细介绍数组的内存分配等知识点.数组用来存储同一种数据类型的数据,一旦初始化完成,即所占的空间就已固定下来,即使某个元素被清空,但其所在空间仍然 ...
- Java学习之旅基础知识篇:数据类型及流程控制
经过开篇对Java运行机制及相关环境搭建,本篇主要讨论Java程序开发的基础知识点,我简单的梳理一下.在讲解数据类型之前,我顺便提及一下Java注释:单行注释.多行注释以及文档注释,这里重点强调文档注 ...
- 我的java学习之旅--一些基础
(因为我粗略学过C,C++,Python,了解过他们的一些语法,所以为了使得java的入门更为顺畅,便会忽略一些和C语法相类似的地方,着重点明一些java自己的特色之处.也减轻一下自己写文字的负担.) ...
- Java学习之旅(二):生病的狗1(逻辑推导)
前言:本篇文章属于个人笔记,例化了一些代码,不知是否合理,请指教. 中午看到一位同学的面试题,觉得很烧脑,烧脑不能一个人烧,要大家一起烧. 村子中有50个人,每人有一条狗.在这50条狗中有病狗(这种病 ...
- java学习之旅
jar文件其实就是一个压缩包,里面包含很多class文件(一个class文件是一个类的字节码).方便在网络上传输.可以规定版本号,更容易进行版本控制. var只能在方法内使用,不能用于定义成员变量. ...
- 面向对象编程(OOP)的五大特征-java学习之旅(1)
这是Alan Kay关于第一个成功的面向对象语言SmallTalk的总结: 1.所有的东西都是对象.可将对象想象成一种新型的变量:它保存着数据,但是可要求它对自身进行操作,理论上讲,可从要解决的问题身 ...
随机推荐
- #dp,概率期望#AT4513 [AGC030D] Inversion Sum
题目 分析 考虑每次交换最多影响到\(2n\)个点对的逆序对判断 不妨设\(dp[i][j]\)表示\(a[i]>a[j]\)的概率,一开始按照\(a\)求出初始的\(dp\) 之后每次交换或不 ...
- Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新
目录 简介 Spring基础 Core核心技术 Testing测试 Data Access Web Servlet Web Reactive 总结 简介 是什么让java世界变得更好,程序员变得更友爱 ...
- 响应式系统reactive system初探
目录 初识响应式系统 什么是响应式系统 响应式系统的四大特点 及时响应性(Responsive) 恢复性(Resilient) 有弹性(Elastic) 消息驱动(Message Driven) 总结 ...
- OpenHarmony创新赛|赋能直播第四期
开放原子开源大赛OpenHarmony创新赛进入了中期评审环节,为了解决开发者痛点,本期以三方库移植.MQTT移植案例.开发工具介绍的3节系列技术课程,帮助开发者提升开发效率,为作品的创新能力奠定坚 ...
- 成像光谱遥感技术中的AI革命:ChatGPT在遥感领域中的应用
遥感技术主要通过卫星和飞机从远处观察和测量我们的环境,是理解和监测地球物理.化学和生物系统的基石.ChatGPT是由OpenAI开发的最先进的语言模型,在理解和生成人类语言方面表现出了非凡的能力.重点 ...
- K8S 性能优化-K8S Node 参数调优
前言 K8S 性能优化系列文章,本文为第四篇:Kubernetes Node 性能优化参数最佳实践. 系列文章: <K8S 性能优化 - OS sysctl 调优> <K8S 性能优 ...
- WAF 原理入门
WAF 入门 WAF 功能 WAF 全称叫 Web Application Firewall,和传统防火墙的区别是,它是工作在应用层的防火墙,主要对 web 请求/响应进行防护.那么 WAF 有什么功 ...
- JavaScript中如何实现函数缓存?有哪些应用场景?
一.是什么 函数缓存,就是将函数运算过的结果进行缓存 本质上就是用空间(缓存存储)换时间(计算过程) 常用于缓存数据计算结果和缓存对象 const add = (a,b) => a+b;cons ...
- RC4Drop加密技术:原理、实践与安全性探究
第一章:介绍 1.1 加密技术的重要性 加密技术在当今信息社会中扮演着至关重要的角色.通过加密,我们可以保护敏感信息的机密性,防止信息被未经授权的用户访问.窃取或篡改.加密技术还可以确保数据在传输过程 ...
- pycharm更换主题,pycharm更换皮肤,pycharm更换不同颜色
1.首先 点击File→进入setting 2. 在settings里面找到appearance 3.选择 Theme,下拉即可修改 4.选择不同的主题,darcula是黑色,其他两个是白色