运算符

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

  • 赋值运算符:=

  • 关系运算符:>, <,>=, <=, ==, !=(不等于),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. #dp,概率期望#AT4513 [AGC030D] Inversion Sum

    题目 分析 考虑每次交换最多影响到\(2n\)个点对的逆序对判断 不妨设\(dp[i][j]\)表示\(a[i]>a[j]\)的概率,一开始按照\(a\)求出初始的\(dp\) 之后每次交换或不 ...

  2. Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新

    目录 简介 Spring基础 Core核心技术 Testing测试 Data Access Web Servlet Web Reactive 总结 简介 是什么让java世界变得更好,程序员变得更友爱 ...

  3. 响应式系统reactive system初探

    目录 初识响应式系统 什么是响应式系统 响应式系统的四大特点 及时响应性(Responsive) 恢复性(Resilient) 有弹性(Elastic) 消息驱动(Message Driven) 总结 ...

  4. OpenHarmony创新赛|赋能直播第四期

     开放原子开源大赛OpenHarmony创新赛进入了中期评审环节,为了解决开发者痛点,本期以三方库移植.MQTT移植案例.开发工具介绍的3节系列技术课程,帮助开发者提升开发效率,为作品的创新能力奠定坚 ...

  5. 成像光谱遥感技术中的AI革命:ChatGPT在遥感领域中的应用

    遥感技术主要通过卫星和飞机从远处观察和测量我们的环境,是理解和监测地球物理.化学和生物系统的基石.ChatGPT是由OpenAI开发的最先进的语言模型,在理解和生成人类语言方面表现出了非凡的能力.重点 ...

  6. K8S 性能优化-K8S Node 参数调优

    前言 K8S 性能优化系列文章,本文为第四篇:Kubernetes Node 性能优化参数最佳实践. 系列文章: <K8S 性能优化 - OS sysctl 调优> <K8S 性能优 ...

  7. WAF 原理入门

    WAF 入门 WAF 功能 WAF 全称叫 Web Application Firewall,和传统防火墙的区别是,它是工作在应用层的防火墙,主要对 web 请求/响应进行防护.那么 WAF 有什么功 ...

  8. JavaScript中如何实现函数缓存?有哪些应用场景?

    一.是什么 函数缓存,就是将函数运算过的结果进行缓存 本质上就是用空间(缓存存储)换时间(计算过程) 常用于缓存数据计算结果和缓存对象 const add = (a,b) => a+b;cons ...

  9. RC4Drop加密技术:原理、实践与安全性探究

    第一章:介绍 1.1 加密技术的重要性 加密技术在当今信息社会中扮演着至关重要的角色.通过加密,我们可以保护敏感信息的机密性,防止信息被未经授权的用户访问.窃取或篡改.加密技术还可以确保数据在传输过程 ...

  10. pycharm更换主题,pycharm更换皮肤,pycharm更换不同颜色

    1.首先  点击File→进入setting 2. 在settings里面找到appearance 3.选择 Theme,下拉即可修改 4.选择不同的主题,darcula是黑色,其他两个是白色