Java快速提升_java快速复习 一 基础语法

最近看很多算法书,比较不错的有不少都是java语言描述,所以用一天时间快速研究并整理java  ,参考资料:java入门经典

Call this file "Example2.java".

class Example2 {

public static void main(String args[]) {

int a; //声明变量

a = 100; //赋值

if(a = 100) print(a); // if(condition) statement;

int x ;

char y = 'x';

byte z = 22;

int d = 3, e, f = 5;

for(x = 0; x<10; x = x+1) // for(initialization; condition; iteration) statement;

System.out.println("This is x: " + x);

}

}

java文件名和类名要相同,运行Java解释器实际上是指定你想要解释器运行的类的名字,它会自动搜索包含该名字且带有.class扩展名的文件。如果找到,它将运行含在该指定类中的代码。

所有的Java应用程序都通过调用main( )开始执行。关键字public是一个访问说明符(access specifier),它允许程序员控制类成员的可见性。如果一个类成员前面有public,则说明该成员能够被声明它的类之外的代码访问(与public相对的是private,它禁止成员被所属类之外的代码访问)。在本例中,main( )必须被定义为public类型因为当程序开始执行时它需要被它的类之外的代码调用。

关键字static允许调用main( )而不必先实现该类的一个特殊实例

关键字void仅通知编译器main()不返回任何值

Java是区分大小写的。

即使一个方法不需要参数,你仍然需要在方法名后面放置一对空括号。main( )仅是解释器开始工作的地方。一个复杂的程序可能包含几十个类,但这些类仅需要一个main( )方法以供解释器开始工作。

java 数据类型

整数:该组包括字节型(byte),短整型(short),整型(int),长整型(long),

它们有符号整数。

浮点型数:该组包括浮点型(float),双精度型(double),它们代表有小数精度

要求的数字。

字符:这个组包括字符型(char),它代表字符集的符号,例如字母和数字。

布尔型:这个组包括布尔型(boolean),它是一种特殊的类型,表示真/假值。

在Java中,字符串实际上是对象类型。因为Java对字符串是作为对象实现的,因此,它有广泛的字符串处理能力,而且功能既强又好用。

变量作用域和生存期

大多数其他计算机语言定义了两大类作用域:全局和局部。在JAVA中不适用。

程序块被包括在一对大括号中。一个程序块定义了一个作用域(scope)。这样,你每次开始一个新块,你就创建了一个新的作用域。你可能从先前的编程经验知道,一个作用域决定了哪些对象对程序的其他部分是可见的,它也决定了这些对象的生存期。

方法定义的作用域以它的左大括号开始。但是,如果该方法有参数,那么它们也被包括在该方法的作用域中。 if for 这些都是方法。

作为一个通用规则,在一个作用域中定义的变量对于该作用域外的程序是不可见。

作用域可以进行嵌套。例如每次当你创建一个程序块,你就创建了一个新的嵌套的作用域。这样,外面的作用域包含内部的作用域。这意味着外部作用域定义的对象对于内部作用域中的程序是可见的

变量在其作用域内被创建,离开其作用域时被撤消。

如果一个声明定义包括一个初始化,那么每次进入声明它的程序块时,该变量都要被重新初始化

类型转换

下列2个条件都能满足将一种类型的数据赋给另外一种类型变量时,将执行自动类型转换

这2种类型是兼容的。

目的类型数的范围比来源类型大

例如,int型的范围比所有byte型的合法范围大,因此不要求显式强制类型转换语句

对于拓宽转换,数字类型,包括整数(integer)和浮点(floating-point)类型都是彼此兼容的

数字类型和字符类型(char)或布尔类型(bollean)是不兼容的

不兼容类型的强制转换

int a;

byte b;

// ...

b = (byte) a;

当把浮点值赋给整数类型时一种不同的类型转换发生了:截断(truncation)。你知道整数没有小数部分。这样,当把浮点值赋给整数类型时,它的小数部分会被舍去

class Conversion {

public static void main(String args[]) {

byte b;

int i = 257;

double d = 323.142;

System.out.println("\nConversion of int to byte.");

b = (byte) i;

System.out.println("i and b " + i + " " + b);

System.out.println("\nConversion of double to int.");

i = (int) d;

System.out.println("d and i " + d + " " + i);

System.out.println("\nConversion of double to byte.");

b = (byte) d;

System.out.println("d and b " + d + " " + b);

}

}

表达式中类型的自动提升

byte a = 40;

byte b = 50;

byte c = 100;

int d = a * b / c;

//中间项结果a*b很容易超过它的任何一个byte型操作数的范围。为处理这种问题,当分

析表达式时,Java自动提升各个byte型或short型的操作数到int型。这意味着子表达式a*b使

用整数而不是字节型来执行

自动类型提升的问题

byte b = 50;

b = b * 2; // Error! Cannot assign an int to a byte!

该程序试图将一个完全合法的byte型的值50*2再存储给一个byte型的变量。但是当表达

式求值的时候,操作数被自动地提升为int型,计算结果也被提升为int型。这样,表达式的

结果现在是int型,不强制转换它就不能被赋为byte型

byte b = 50;

b = (byte)(b * 2); //正解

类型提升一直以最高级的类型为目标提升。

数组

声明数组

int month_days[];  //type var-name[ ];

声明并初始化为0

month_days = new int[12];  //array-var = new type[size];

赋值

month_days[0] = 31;

month_days[1] = 28;

声明并初始化

int month_days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31,30, 31 };

二维数组

int twoD[][] = new int[4][5];

第二种声明形式以下两种等价

int al[] = new int[3];

int[] a2 = new int[3];

Java不支持或不允许指针因为这样做将允许Javaapplet(小应用程序)突破Java运行环境和主机之间的防火墙 后面说解决方案。

运算符

+ - * / % ++ += -= *= /= %= --

关系运算符

== != > < >= <=

逻辑运算符 & |  ^  || && ! &= |= ^= == != ?:

注意java有三元运算

expression1 ? expression2 : expression3

ratio = denom == 0 ? 0 : num / denom;

if(condition)

statement;

else if(condition)

statement;

else if(condition)

statement;

else

statement;

switch (expression) {

case value1:

// statement sequence

break;

case value2:

// statement sequence

break;

.

.

.

case valueN:

// statement sequence

break;

default:

// default statement sequence

}

表达式expression必须为byte,short,int或char类型。每个case语句后的值value必须是与表达式类型兼容的特定的一个常量(它必须为一个常量,而不是变量)。重复的case值是不允许的

switch可以嵌套

三种循环

while(condition) {

// body of loop

}

do {

// body of loop

} while (condition);

for(initialization; condition; iteration) {

// body

}

Java允许你在for循环的初始化部分和反复部分声明多个变量,每个变量之间用逗号分开。

for(a=1, b=4; a

break,continue和return 都支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

酷狗音乐linux版_酷狗音乐概念版APP内测获用户好评:极简化,更高级

这两天在网上冲浪的时候&#xff0c;发现不少网友都在安利一个叫做“酷狗音乐概念版”的APP&#xff0c;难道是酷狗又在闷声搞大事了&#xff1f;搜了一下发现&#xff0c;原来是酷狗音乐概念版APP已经开始进入内测阶段&#xff0c;尝试着下载使用&#xff0c;果然发现“更酷更…

java 计算器类图_多态计算器(封装、继承、多态、简单工厂)

一.封装向对象程序设计中&#xff0c;一个非常重要的技术便是封装&#xff0c;也就是把客观事物封装成抽象的类&#xff0c;并且类可以把自己的数据和方法只让可信的类或者对象操作&#xff0c;对不可信的进行信息隐藏。这样做的好处在于可以使类内部的具体实现透明化&#xff…

图书管理系统 java 源码_[源码和文档分享]基于C语言和SQL SERVER数据库实现的图书管理系统...

摘 要本文根据《数据库应用系统设计》课程要求而做。选择图书馆管理系统设计与开发是因为觉得图书馆管理系统对我们的帮助很大&#xff0c;并且经常去图书馆&#xff0c;对图书馆的大部分功能及流程还是比较了解&#xff0c;而且现在有些地方可能还不够完善。这次课程设计目标是…

java useragent 360 遨游 火狐_各种浏览器UserAgent一览表(桌面+移动)

桌面IE而IE各个版本典型的userAgent如下&#xff1a;Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)其中&#x…

sql server 修改字段不能为空_SQL-SQL介绍

一SQL 介绍SQL&#xff08;Structured Query Language&#xff09;,语义是结构化语言&#xff0c; 是一门 ANSI 的标准计算机语言&#xff0c;用来访问和操作数据库系统&#xff1b;二 数据库介绍2.1 数据库我们已经知道了SQL是操作数据库的语言&#xff0c;那么数据库是什么&a…

python 数组转音频_Python3+将2声道音频,分拆成1声道

现在是将双声道的音频分拆成单声道的。同理可以将多声道的音频文件&#xff0c;转为1声道的音频文件。注意新形成的音频文件的rate&#xff0c;需要与原音频的相同。import osimport waveimport numpy as npimport pyaudiofile1 os.path.join(os.path.abspath(os.path.dirname…

java定义一个矩阵的类_java写入一个矩阵,如何编程求该矩阵的秩

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Fraction.java如下:(这个是网上找来的&#xff0c;处理分数的类)// 支持查找功能的分数类class Fraction implements Comparable {// 分子private int numerator;// 分母private int denominator;// 默认构造函数public Fraction()…

python动态映射_Python Django框架url反向解析实现动态生成对应的url链接示例

本文实例讲述了Python Django框架url反向解析实现动态生成对应的url链接。分享给大家供大家参考&#xff0c;具体如下&#xff1a;url反向解析&#xff1a;根据url路由规则,动态生成对应的url链接 (防止硬编码)。url反向解析应用在两个地方&#xff1a;模板中的超链接&#xff…

java标量替换_JAVA逃逸分析、栈上分配、标量替换、同步消除

一、逃逸分析逃逸分析是编译语言中的一种优化分析&#xff0c;而不是一种优化的手段。通过对象的作用范围的分析&#xff0c;为其他优化手段提供分析数据从而进行优化。逃逸分析包括&#xff1a;全局变量赋值逃逸方法返回值逃逸实例引用发生逃逸线程逃逸:赋值给类变量或可以在其…

python图像人类检测_OpenCV人类行为识别(3D卷积神经网络)

1. 3D卷积神经网络相比于2D 卷积神经网络&#xff0c;3D卷积神经网络更能很好的利用视频中的时序信息。因此&#xff0c;其主要应用视频、行为识别等领域居多。3D卷积神经网络是将时间维度看成了第三维。人类行为识别的实际应用&#xff1a;安防监控。(检测识别异常行为&#x…

Spring Cloud Feign作为HTTP客户端调用远程HTTP服务

如果你的项目使用了SpringCloud微服务技术,那么你就可以使用Feign来作为http客户端来调用远程的http服务。当然,如果你不想使用Feign作为http客户端,也可以使用比如JDK原生的URLConnection、Apache的Http Client、Netty的异步HTTP Client或者Spring的RestTemplate。 那么,为…

java查看weblogic服务器_java判断服务器是那种,例如区分tomcat和weblogic | 学步园

package com.geostar.query.util;import org.apache.log4j.Logger;/*** author likehua* 服务器类型探测* Date 2011/04/13* **/public class ServerUtil {public static final String GERONIMO_CLASS "/org/apache/geronimo/system/main/Daemon.class";public s…

拼接的option会多出空行_Word空格,空行,页眉横线等问题,我只花一分钟就全解决了...

从网上复制下来的资料粘贴到Word文档上&#xff0c;出现了许多空格、空行、页眉横线等问题&#xff0c;这时候我们该如何快速地解决这些问题&#xff0c;看看下面的操作你就知道了。一、删除空格1、空格案例从网上复制下来的文字到Word文档中&#xff0c;出现字与字之间有好多空…

基于java高校教师管理系统_基于SSM框架下的JAVA高校教师业务水平综合管理系统...

每天记录学习&#xff0c;每天会有好心情。*^_^*今天和一个朋友共同完成了一个高校教师业务水平综合管理系统项目&#xff0c;我们在开发时选用的框架是SSM(MYECLIPSE)框架。我这个朋友知识有限&#xff0c;只会这个框架&#xff0c;哈哈&#xff0c;都是为了方便他。和往常一样…

oracle连接工具_扯一扯Tableau软件配置数据源系列之Oracle

作者&#xff1a;扯蛋君编辑&#xff1a;齐天大圣声明&#xff1a;本文章仅用于Taleau软件的应用、学习沟通&#xff0c;不代表Taleau公司&#xff1b;文中所示截图来源Taleau官方及软件公开内容&#xff0c;相应著作权归Tableau所有。 今天给大家介绍Tableau工具如何连接数据库…

在java中原始时间_Java 日期时间

Java 日期时间java.util包提供了Date类来封装当前的日期和时间。 Date类提供两个构造函数来实例化Date对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数&#xff0c;该参数是从1970年1月1日起的微秒数。Date(long millisec)Date对象创建…

如何和后台接触的_后台产品,不只是做支持

最近在招聘后台产品经理&#xff0c;面试过程中提到一个问题&#xff0c;这个问题之前也困扰了我很久&#xff1a;你做的后台产品&#xff0c;价值体现在哪里&#xff1f;只是做业务支持么&#xff1f;今天就来聊聊这个话题。我是做后台产品出身&#xff0c;最开始入行做的是云…

java手写的html转图片格式_(Java实现)HTML转JPG,TIFF等图片格式和TIFF图片合并功能解决方案。...

上一篇文章说到了HTML转PDF的实现方式&#xff0c;而就在那个需求的另外一个方面&#xff0c;项目要求要实现页面转图片的需求&#xff0c;主要是JPG&#xff0c;TIFF&#xff0c;PNG等格式。弄得我有点囧&#xff0c;上次一直没搞定。也没找到合适的工具进行转换。前一小段时间…

云计算呼叫中心_干货|云呼叫中心系统和传统呼叫中心系统的区别在哪?

随着社会的发展&#xff0c;呼叫中心由传统的呼叫中心逐渐发展为云呼叫中心。然而关于这两者的区别&#xff0c;您知道吗&#xff1f;跟随畅远技术一同来了解一下吧......一、购买、安装不同传统呼叫中心软件在配置方面有几个特点&#xff1a;一次购买终身使用&#xff1b;安装…

java从键盘为数组赋值,java给数组赋值

java 动态数组赋值,java对象数组详解,java二维数组赋值,java给数组赋值java数组动态赋值,从零学java笔录-第24篇 图解一维数组在内存中,java二维数组赋值,java给数组赋值java 数组动态赋值,从零学java笔录-第24篇 图解一维数组在内存中,java二维数组赋值,java给数组赋值数组的基…