Java——基本结构程序设计
**本次学习Java ,所采用的的IDE是JetBrains公司开发的IDEA
下面是我安装并配置IDEA的流程,有需要的小伙伴可以参考。
链接: [link]()
如果IDEA获取有困难的,可以使用免费的eclipse IDE ,也很方便的。**
一个简单的java应用程序
第一步
在下拉的菜单中选择新建,然后点击项目,既可以创建一个Java Project
第二步
名称是用户自己定义,最好是与项目相关,尽量用英文,不要使用中文(可能后续编译时会产生不必要的麻烦),然后是这个项目的位置,根据你的爱好而定,接着JDK ,则是编译和调试你程序的,第一次使用时,IDEA会自动监测,如果你没事先安装的话,IDEA会提醒你在IDEA内下载,最后点击创建。
我们是在项目的src目录中写代码,下面一次右键src ,找到软件包,这是java的包文件;
在包中,右键包,然后找到java的类,即class
第三步
在java的main函数内,输入我们的第一个程序“ we will not use ‘hello world’“”
第四步
我们可以点击右上角的朝右的三角形,如果此图标是灰色的,别着急,我们可以看向界面的左下角。最左边下面有一个“结构” ,我们点击。然后找到我们的类名,右键点开,找到调试词条,就可以运了。
注释
Java中有3中注释方式(Java核心技术卷(第十一版)一 P29 提及),注释以及注释的代码不会出现在可执行程序中,所以可以放心添加任意多的注释(虽然是一个好习惯,但是我觉得大部分人觉得还是比较麻烦! haha !!!)
如图
/** 开始 */结束的注释,可以用来自动生成文档,我们可以在settings中设置
// 注释一行 ,从//开始,知道这一行末尾
/**/ 用来注释更长的内容 ,以/开始 , 以/结束
数据类型
Java是一种强类型语言 , 即每一个变量必须声明一种类型。Java中,一共有8种基本类型。其中4种整型,2种浮点类型,1种字符类型和表示真值的boolean类型
下面我以代码的形式,来深入理解一下java这8种数据类型,其中boolean特殊。boolean类型有两个值:false 和 true 。用来判定逻辑条件。注意:整型值与布尔值之间不能进行相互转换。
// byteSystem.out.println("基本类型:byte 二进制位数:" + Byte.SIZE); System.out.println("包装类:java.lang.Byte"); System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE); System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE); System.out.println(); // short System.out.println("基本类型:short 二进制位数:" + Short.SIZE); System.out.println("包装类:java.lang.Short"); System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE); System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE); System.out.println(); // int System.out.println("基本类型:int 二进制位数:" + Integer.SIZE); System.out.println("包装类:java.lang.Integer"); System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE); System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE); System.out.println(); // long System.out.println("基本类型:long 二进制位数:" + Long.SIZE); System.out.println("包装类:java.lang.Long"); System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE); System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE); System.out.println(); // float System.out.println("基本类型:float 二进制位数:" + Float.SIZE); System.out.println("包装类:java.lang.Float"); System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE); System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE); System.out.println(); // double System.out.println("基本类型:double 二进制位数:" + Double.SIZE); System.out.println("包装类:java.lang.Double"); System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE); System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE); System.out.println(); // char System.out.println("基本类型:char 二进制位数:" + Character.SIZE); System.out.println("包装类:java.lang.Character"); System.out.println("最小值:Character.MIN_VALUE=" + (int) Character.MIN_VALUE); System.out.println("最大值:Character.MAX_VALUE=" + (int) Character.MAX_VALUE);
变量与常量
Java使用变量存储值。而常量就是值不会变的变量。
变量
Java中 , 每一个变量都有一个类型(type)。声明变量时,先指定变量的类型,然后是变量名称。以下是例子
double Salary ;int vacationDays ;long earthPopulation ;boolean done ;
Java中变量分为成员变量与局部变量
成员变量 :类方法外的变量 ,又分为了静态(类)变量和实例变量
局部变量 :类方法内的变量
public class Member_variable {public static int num = 9;// 类变量public static String Name = "类变量(类中直接引用,其他类:类名.类变量)";public int count ; //实例变量public String name ;public Member_variable(){count = 6 ;name = "实例变量(对象.实例变量)";}public static void main(String[] args) {// TODO Auto-generated method stubMember_variable test = new Member_variable();System.out.println(test.name + ":"+ test.count);System.out.println(Name+num);}
}
通过代码发现 类变量与实例变量主要的区别就是 static关键字
static 关键字标识的就是 类变量 ,没有就是实例变量
实例变量 :
*实例变量声明在一个类中,但在方法、构造方法和语句块之外;
*实例变量可以声明在使用前或者使用后;
*实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
*实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
*当一个对象被实例化之后,每个实例变量的值就跟着确定;
*实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
*访问修饰符可以修饰实例变量;
*实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
*实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObjectReference.VariableName。
以下是例子
public class Instance_variable {// 这个实例变量对子类可见public String name ; // 私有变量 , 仅在该类可见private double salary ;// 在构造器中对name赋值public Instance_variable (String empName){name = empName ;}// 设定salary的值public void setSalary(double empSal){salary = empSal ;}// 打印信息public void printEmp(){System.out.println("名字 : " + name) ;System.out.println("薪水 : " + salary) ;}public static void main(String[] args) {// TODO Auto-generated method stub/*我们给对象赋初值*/Instance_variable empOne = new Instance_variable("RUNOOB");empOne.setSalary(1000.0);empOne.printEmp();/*我们直接创建一个对象,但不赋值*/Instance_variable none = new Instance_variable("") ;none.printEmp();}}
结果
类变量 :
*类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外。
*无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
*类变量的优先级大于实例变量
*静态变量除了被声明为常量外很少使用,静态变量是指声明为 public/private,final 和 static 类型的变量。静态变量初始化后不可改变。
*静态变量储存在静态存储区。经常被声明为常量,很少单独使用 static 声明变量。
*静态变量在第一次被访问时创建,在程序结束时销毁。
*与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为 public 类型。
*默认值和实例变量相似。数值型变量默认值是 0,布尔型默认值是 false,引用类型默认值是 null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
*静态变量可以通过:ClassName.VariableName的方式访问。
*类变量被声明为 public static final 类型时,类变量名称一般建议使用大写字母。如果静态变量不是 public 和 final 类型,其命名方式与实例变量以及局部变量的命名方式一致。
例子
public class Static_variable {//salary是静态的私有变量private static double salary;// DEPARTMENT是一个常量public static final String DEPARTMENT = "开发人员";public static void main(String[] args){Static_variable.salary = 10000 ;salary = 10000;System.out.println(DEPARTMENT+"平均工资:"+salary);}
}
结果
常量
//Constantfinal double CM_PER_INCH = 2.54 ;final double paperWidth = 8.5 ;final double paperHeight = 11 ;System.out.println("Paper size in centiments :" + paperWidth * CM_PER_INCH + " by " + paperHeight * CM_PER_INCH);
结果
常量也分为局部常量 和 成员常量
在变量声明上加上final字段 ,即可实现常量
运算符
算术运算
int a = 10;int b = 20;int c = 25;int d = 25;System.out.println("a + b = " + (a + b) ); System.out.println("a - b = " + (a - b) );System.out.println("a * b = " + (a * b) );System.out.println("b / a = " + (b / a) );System.out.println("b % a = " + (b % a) );System.out.println("c % a = " + (c % a) );System.out.println("a++ = " + (a++) );System.out.println("a-- = " + (a--) );
关系运算
int a = 10;int b = 20;public void print2(){System.out.println("a == b = " + (a == b) );System.out.println("a != b = " + (a != b) ); System.out.println("a > b = " + (a > b) );System.out.println("a < b = " + (a < b) );System.out.println("b >= a = " + (b >= a) );System.out.println("b <= a = " + (b <= a) );}
位运算
int a = 60 ; // 60 = 0000 0000 0000 0000 0000 0000 0011 1100 ;int b = 13 ; // 13 = 0000 0000 0000 0000 0000 0000 0000 1101 ;int c = 0 ;public void print3() // 注释只显示后8位{//与运算,对应位进行与处理c = a & b ; // 12 = 0000 1100 ;System.out.println("a & b = " + c);//或运算,对应位或处理c = a | b ; // 61 = 0011 1101 ;System.out.println("a | b = " + c);c = a ^ b ; // 49 = 0011 0001 ;System.out.println("a ^ b = " + c);c = ~a ; // -61 = 1111 1111 1111 1111 1111 1111 1100 0011 ;System.out.println("~a = " + c );c = a >> 2 ; // 15 = 0000 1111 System.out.println("a >> 2 = "+ c);c = a << 2 ; // 1111 0000 = 240System.out.println("a << 2 = " + c);c = a >>> 2 ; // 15 = 0000 1111System.out.println("a >>> 2 = " + c) ;}
逻辑运算
boolean a = true;boolean b = false;int c = 5 ;boolean d = ( c <4 ) && ( c++ < 10) ;public void print4(){System.out.println("a && b = " + (a&&b));System.out.println("a || b = " + (a||b) );System.out.println("!(a && b) = " + !(a && b));//短路逻辑运算符 即利用性质,只需判断一个即可知道结果,另一个式子无法影响整体的结果System.out.println("使用短路逻辑运算符的结果为" + d);System.out.println(c);}
赋值运算
int a = 10 ;int b = 20 ;int c ;public void print5(){c = a + b;System.out.println("c = a + b = " + c );c += a ;System.out.println("c += a = " + c );c -= a ;System.out.println("c -= a = " + c );c *= a ;System.out.println("c *= a = " + c );a = 10;c = 15;c /= a ;System.out.println("c /= a = " + c );a = 10;c = 15;c %= a ;System.out.println("c %= a = " + c );c <<= 2 ;System.out.println("c <<= 2 = " + c );c >>= 2 ;System.out.println("c >>= 2 = " + c );c >>= 2 ;System.out.println("c >>= 2 = " + c );c &= a ;System.out.println("c &= a = " + c );c ^= a ;System.out.println("c ^= a = " + c );c |= a ;System.out.println("c |= a = " + c );}
条件运算
int a = 10 ;int b = (a ==1) ? 20 : 30 ;public void print6(){System.out.println("Value of b is " + b);b = (a == 10) ? 20 : 30 ;System.out.println("Value of b is " + b) ;}
数学函数
Java中,有一个Math类,其中包含了许多静态方法,
Math类 , 其中的函数,可以帮助我们更快捷地编写程序
public class Main {public static void main(String [] args){//计算平方根double sq = Math.sqrt(10) ;System.out.println("10的开方为 : " + sq) ;//幂运算double y = Math.pow(1.5 , 2) ;System.out.println("1.5的2次方为 : " + y);//提供类一些三角函数double sin = Math.sin(Math.PI * 0.5) ;System.out.println("此三角函数的sin值为 : "+ sin) ;sin = Math.cos(Math.PI * 0.5) ;System.out.println("cos的值为" + sin );//Math类定义了两个常量的接近值System.out.println(Math.PI);System.out.println(Math.E) ;}
}
jieguo
强制类型转换
double i = 5.555 ;int m ;m = (int ) i;System.out.println(m) ;
自增、自减运算
System.out.println("自增运算符前缀运算后a="+a+",x="+x);System.out.println("自增运算符后缀运算后b="+b+",y="+y);
运算符
如果不使用圆括号,就按照给出的运算符优先级次序进行计算。同一个级别的运算符按照从左到右的赐福以此计算。(摘录Core Java Volume I)
类型 | 操作符 | 结合性 |
---|---|---|
后缀 | () [] . (点操作符) | 左到右 |
一元 | expr++ expr– | 从左到右 |
一元 | ++expr --expr + - ~ ! | 从右到左 |
乘性 | * /% | 左到右 |
加性 | + - | 左到右 |
移位 | >> >>> << | 左到右 |
关系 | > >= < <= | 左到右 |
相等 | == != | 左到右 |
按位与 | & | 左到右 |
按位异或 | ^ | 左到右 |
按位或 | | | 左到右 |
逻辑与 | && | 左到右 |
逻辑或 | || | 左到右 |
条件 | ?: | 从右到左 |
赋值 | = + = - = * = / =%= >> = << =&= ^ = | = |
逗号 | , | 左到右 |
字符串
在Java中,String是一个字符串类,也就是代表String不是对象。在标准Java的类库中定义的。
每一个用“”双引号括起来的都是String类。
在这里介绍String类中的几个常用的函数和 常见的误区。
创建字符串
String str ;//声明一个String 类的对象
String str1 = "hello world" ; //声明并赋值
String str2 = "" ;// 声明并赋值为空串
产生子串
String greeting = "Hello" ;String s = greeting.substring(0, 3) ;System.out.println(greeting) ;System.out.println(s);
结果
拼接的用法
//Java中 +号可以拼接String expletive = "Expletive" ;String PG13 = "deleted" ;String message = expletive + PG13 ;System.out.println("两个字符串拼接的结果 : " + message) ;//Java中,一个字符串与一个非字符串相连接,后者会转换为字符串int age =13 ;String rating = "PG" + age ;System.out.println(rating) ;//Java中,需要将多个字符串连接,且用界定符隔开String all = String.join("/", "S" , "M" , "L" , "XL");System.out.println(all) ;//Java中,重复多个字符串String s0 = "Java" ;String repeated = "Java".repeat(3) ;String repeateding = s0.repeat(4) ;System.out.println(repeated);System.out.println(repeateding) ;//Java中没有提供修改字符串中某个字符的方法greeting = greeting.substring(0 , 3) + "p!" ;System.out.println(greeting) ;
空串和null
//空串和null串String greet = "hello" ;String g = "" ;int n = greet.length();
相等
//Java中的字符串相等String s1 = "Hello" ;String s2 = "Hello" ;boolean e = (s2 == s1);System.out.println(e) ;String s3 = new String("abc");String s4 = new String("abc");boolean f = (s3 == s4) ;System.out.println(f);
码点和代码单元
//Java中的码点和代码单元String zf = "
Java——基本结构程序设计相关推荐
- (菜鸟教程)Java分支结构程序设计----if语句的使用
if语句的使用 if主要有以下几种用法 if(布尔表达式) { //如果布尔表达式为true将执行的语句 } if(布尔表达式){ //如果布尔表达式的值为true }else{ //如果布尔表达式的 ...
- 《Java程序设计》实验报告——Java的基本程序设计结构
浙江理工大学 <Java程序设计> 实验报告 20 19-20 20学年第 1学期 学 院 信息学院 班 级 计算机科学技术18(3) 姓 名 申屠志刚 学 号 20 ...
- JAVA实验——Java的基本程序设计结构
实验一 Java的基本程序设计结构 实验目的 熟悉Java开发环境,建立Java工程,练习编程,会使用变量,字符串,数组,输入与输出等API. 实验内容 利用eclipse建立Java工程 必做题 ...
- CoreJava 笔记总结-第三章 Java的基本程序设计结构
CoreJava 笔记总结 文章目录 CoreJava 笔记总结 第三章 Java的基本程序设计结构 数据类型 1. 整型 2. 浮点类型 3. char类型 4. boolean类型 变量与常量 1 ...
- 第2章(Java 的基本程序设计结构)
第2章(Java 的基本程序设计结构) 文章目录 第2章(Java 的基本程序设计结构) 2.1一个简单的 Java 应用程序 2.2注 释 2.3数据类型 2.3.1整型 2.3.2浮点型 2.3. ...
- Java高并发程序设计入门
转自:http://blog.csdn.net/johnstrive/article/details/50667557 说在前面 本文绝大部分参考<JAVA高并发程序设计>,类似读书笔记和 ...
- JavaSE-Adventure(VII) Java OOP 面向对象程序设计
JavaSE-Adventure(VII) Java & OOP 面向对象程序设计 CONTENTS JavaSE-Adventure(VII) Java & OOP 面向对象程序设计 ...
- 2,Java语言基础-Java语言基本程序设计知识
Java语言基础 Java语言基本程序设计知识 1,JavaAPI概述 1.1,什么是API API是指应用程序接口( Application Program Interface, API),故名思意 ...
- 今天开始拜读一本大神写的书《实战Java高并发程序设计 》
基本信息 书名:实战Java高并发程序设计 定价:69.00元 作者:葛一鸣著 出版社:电子工业出版社 出版日期:2015-10-01 ISBN:9787121273049 字数:493000 页码: ...
最新文章
- java中如何就绝对定位,Java中如何定位资源
- Python使用matplotlib画图,设置曲线颜色、类型及标记
- 关于Transformer和BERT,在面试中有哪些细节问题?
- HDoj-1874-畅通project续-Dijkstra算法
- IP地址转化为数字,charindex ,SUBSTRING
- Spring boot + mybatis plus 快速构建项目,生成基本业务操作代码。
- mPaaS-RPC 拦截器各种场景下的使用指南
- C++学习笔记—srand()和rand()
- tesseract 提升 速度_2020斗式提升机料斗呼伦贝尔厂家定制哪家好
- java web传递参数_Javaweb的八种传值方式
- C++11 static_assert
- android 分辨率适配的方法
- 计算机word英语词汇大全,Microsoft Word - 计算机英语词汇汇总.pdf
- Excel加载宏.xla文件的使用方法
- 为什么存png还有白色底_为什么导出png还是有白底
- 怦然心动(Flipped)-2
- html5 app 打包,手机h5网站如何快速打包做成APP?
- 安装MySQL的正确步骤
- jquery怎么实现点击刷新当前页面
- 基于webrtc的视频聊天室(六)之客户端设计
热门文章
- MyBatis出现“无效列类型1111错误”的解决方案
- 智能网联云控车路协同的研究实践
- 15道APP测试面试题分享,助攻你的面试
- 正交频分复用调制(OFDM)-MATLAB
- JDK和JRE下載大全
- linux ls命令详解
- 华为q1设置虚拟服务器,快速设置手机解决 华为Q1系统解析_华为 路由Q1_网络设备无线网络和技术-中关村在线...
- 一款app如何做才能将产品运营好?
- 准Z源光伏并网系统MATLAB仿真模型,采用了三次谐波注入法SPWM调制
- 从模块化到NPM私有仓库搭建