运算符

  • 算术运算符:+ ,- ,* ,/,%(取余或模运算), ++(自增),-- (自减)

  • 赋值运算符:=

  • 关系运算符:>, <,>=, <=, ==, !=(不等于),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;
}
}
  1. 使用命令行cmd生成javaDoc文档(格式:javadoc 参数 jav文件)

cmd中输入:javadoc -encoding UTF-8 -charset UTF-8 Doc.java

javadoc 命令

Doc.java:文件名

中间加的参数-encoding UTF-8 -charset UTF-8是为了不使文档乱码,文档中有中文,有时会乱码

  1. 使用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的基本结构,除非特别指明,否则就按顺序一句一句执行,顺序结构是最简单的算法结构

选择结构

  1. if单选择结构

语法表达:

if(布尔表达式){

//如果布尔表达式为true执行的语句

}

  1. 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();
}
}
  1. 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)的更多相关文章

  1. Java学习之旅开篇:运行机制及环境搭建

    在写这篇博客之前,我想对自己进行简单概括:我从事软件开发工作已经三年多了,并且一直在从事.NET相关项目的开发.为什么突然间想学习Java呢?有以下几个原因: 1. 开发程序三年多来,已经对.NET相 ...

  2. Java学习之旅基础知识篇:面向对象之封装、继承及多态

    Java是一种面向对象设计的高级语言,支持继承.封装和多态三大基本特征,首先我们从面向对象两大概念:类和对象(也称为实例)谈起.来看看最基本的类定义语法: /*命名规则: *类名(首字母大写,多个单词 ...

  3. 第一篇,java学习之旅

    在java的这座殿堂中,我才刚刚推开了大门,就像是在岔路口找到了一条,走向前进java大门的路. 下面是一些java算法的问题 第一题: package project.model; import j ...

  4. Java学习之旅(一):探索extends

    鄙人为兴趣爱好,0基础入门学习Java,有些心得想法,记录于此,与君分享. 然毕竟新手,学识尚浅,错误之处,希望多多指正批评,也是对我最大的帮助! 前言:本篇文章,主要讨论在子类继承父类之后,一些继承 ...

  5. Java学习之旅基础知识篇:数组及引用类型内存分配

    在上一篇中,我们已经了解了数组,它是一种引用类型,本篇将详细介绍数组的内存分配等知识点.数组用来存储同一种数据类型的数据,一旦初始化完成,即所占的空间就已固定下来,即使某个元素被清空,但其所在空间仍然 ...

  6. Java学习之旅基础知识篇:数据类型及流程控制

    经过开篇对Java运行机制及相关环境搭建,本篇主要讨论Java程序开发的基础知识点,我简单的梳理一下.在讲解数据类型之前,我顺便提及一下Java注释:单行注释.多行注释以及文档注释,这里重点强调文档注 ...

  7. 我的java学习之旅--一些基础

    (因为我粗略学过C,C++,Python,了解过他们的一些语法,所以为了使得java的入门更为顺畅,便会忽略一些和C语法相类似的地方,着重点明一些java自己的特色之处.也减轻一下自己写文字的负担.) ...

  8. Java学习之旅(二):生病的狗1(逻辑推导)

    前言:本篇文章属于个人笔记,例化了一些代码,不知是否合理,请指教. 中午看到一位同学的面试题,觉得很烧脑,烧脑不能一个人烧,要大家一起烧. 村子中有50个人,每人有一条狗.在这50条狗中有病狗(这种病 ...

  9. java学习之旅

    jar文件其实就是一个压缩包,里面包含很多class文件(一个class文件是一个类的字节码).方便在网络上传输.可以规定版本号,更容易进行版本控制. var只能在方法内使用,不能用于定义成员变量. ...

  10. 面向对象编程(OOP)的五大特征-java学习之旅(1)

    这是Alan Kay关于第一个成功的面向对象语言SmallTalk的总结: 1.所有的东西都是对象.可将对象想象成一种新型的变量:它保存着数据,但是可要求它对自身进行操作,理论上讲,可从要解决的问题身 ...

随机推荐

  1. 如何翻译 Markdown 文件?-2-几种商业及开源解决方案介绍

    背景 近期在搭建英文博客-<e-whisper.com>, 需要对现有的所有中文 Markdown 翻译为英文. 需求如下: 将 Markdown 文件从中文 (zh-CN) 翻译为英文 ...

  2. linux 性能自我学习 ———— cpu 快速定位问题 [六]

    前言 主要介绍一下cpu如何快速定位问题. 正文 cpu 的一些性能指标: 1. cpu 使用率 cpu 使用率描述了非空闲时间占总cpu时间的百分比,根据cpu上运行任务的不同,又被分为用户cpu. ...

  3. 争论不休的一个话题:金额到底是用Long还是BigDecimal?

    在网上一直流传着一个争论不休的话题:金额到底是用Long还是用BigDecimal?这个话题一出在哪都会引起异常无比激烈的讨论.... 比如说这个观点:算钱用BigDecimal是常识 有支持用Lon ...

  4. (react)获取json数据与传入(antd配合)

    import React from 'react'; import {fetch} from 'whatwg-fetch'; // import {HashRouter as Router,Route ...

  5. 记录如何用php做一个网站访问计数器的方法

    简介创建一个简单的网站访问计数器涉及到几个步骤,包括创建一个用于存储访问次数的文件或数据库表,以及编写PHP脚本来增加计数和显示当前的访问次数. 方法以下是使用文件存储访问次数的基本步骤: 创建一个文 ...

  6. 【笔记】GO内建容器--数组

    go内建容器--数组 1.数量要写在类型的前面 2.可通过_省略变量 3.不仅是range,任何地方都可以使用_来省略变量 4.如果只要i,则可写成for i := range numbers 5.[ ...

  7. 面试题 02.07(Java). 链表相交(简单)

    题目: 本题与:力扣160相交链表 一致 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点.如果两个链表没有交点,返回 null . 图示两个链表在节点 c ...

  8. 力扣570(MySQL)-至少有5名直接下属的经理(简单)

    题目: Employee 表包含所有员工和他们的经理.每个员工都有一个 Id,并且还有一列是经理的 Id. 给定 Employee 表,请编写一个SQL查询来查找至少有5名直接下属的经理.对于上表,您 ...

  9. OpenKruise v1.3:新增自定义 Pod Probe 探针能力与大规模集群性能显著提升

    简介: 在版本 v1.3 中,OpenKruise 提供了新的 CRD 资源 PodProbeMarker,改善了大规模集群的一些性能问题,Advanced DaemonSet 支持镜像预热,以及 C ...

  10. 阿里云消息队列 Kafka-消息检索实践

    简介: 本文章主要介绍消息队列使用过程中所遇到的消息丢失.重复消费等痛点问题的排查办法,以及消息队列 Kafka「检索组件」的场景实践,并对其关键技术进行解读.旨在帮助大家对消息队列 Kafka「检索 ...