// 单行注释
/*
多行注释
*/
/**
JavaDoc(Java文档)注释是这样的。可以用来描述类和类的属性。
*/ // 导入 java.util中的 ArrayList 类
import java.util.ArrayList;
// 导入 java.security 包中的所有类
import java.security.*; // 每个 .java 文件都包含一个public类,这个类的名字必须和这个文件名一致。
public class LearnJava { // 每个程序都需要有一个main函数作为入口
public static void main (String[] args) { // 使用 System.out.println 来输出到标准输出
System.out.println("Hello World!");
System.out.println(
"Integer: " + 10 +
" Double: " + 3.14 +
" Boolean: " + true); // 如果要在输出后不自动换行,可以使用System.out.print方法。
System.out.print("Hello ");
System.out.print("World"); ///////////////////////////////////////
// 类型与变量
/////////////////////////////////////// // 用 <type> <name> 来声明变量
// 字节类型 - 8位补码表示
// (-128 <= 字节 <= 127)
byte fooByte = 100; // 短整型 - 16位补码表示
// (-32,768 <= 短整型 <= 32,767)
short fooShort = 10000; // 整型 - 32位补码表示
// (-2,147,483,648 <= 整型 <= 2,147,483,647)
int fooInt = 1; // 长整型 - 64位补码表示
// (-9,223,372,036,854,775,808 <= 长整型 <= 9,223,372,036,854,775,807)
long fooLong = 100000L;
// L可以用来表示一个数字是长整型的。
// 其他的数字都默认为整型。 // 注意:Java中没有无符号类型 // 浮点型 - 即 IEEE 754 规定的32位单精度浮点类型
float fooFloat = 234.5f;
// f用来表示一个数字是浮点型的。
// 否则会被默认当做是双精度浮点型。 // 双精度浮点型 - 即 IEEE 754 规定的64位双精度浮点类型
double fooDouble = 123.4; // 布尔类型 - true 与 false
boolean fooBoolean = true;
boolean barBoolean = false; // 字符类型 - 16位 Unicode编码字符
char fooChar = 'A'; // 用 final 可以使一个常量不可更改
final int HOURS_I_WORK_PER_WEEK = 9001; // 字符串
String fooString = "My String Is Here!"; // \n 代表一个新的换行
String barString = "Printing on a new line?\nNo Problem!";
// \t 代表一个新的制表符
String bazString = "Do you want to add a tab?\tNo Problem!";
System.out.println(fooString);
System.out.println(barString);
System.out.println(bazString); // 数组
// 数组在声明时大小必须已经确定
// 数组的声明格式:
//<数据类型> [] <变量名> = new <数据类型>[<数组大小>];
String [] stringArray = new String[1];
boolean [] booleanArray = new boolean[100]; // 声明并初始化数组也可以这样:
int [] intArray = {9000, 1000, 1337}; // 随机访问数组中的元素
System.out.println("intArray @ 0: " + intArray[0]); // 数组下标从0开始并且可以被更改
intArray[1] = 1;
System.out.println("intArray @ 1: " + intArray[1]); // => 1 // 其他数据类型
// ArrayLists - 类似于数组,但是功能更多,并且大小也可以改变
// LinkedLists
// Maps
// HashMaps ///////////////////////////////////////
// 操作符
///////////////////////////////////////
System.out.println("\n->Operators"); int i1 = 1, i2 = 2; // 多重声明可以简化 // 算数运算
System.out.println("1+2 = " + (i1 + i2)); // => 3
System.out.println("2-1 = " + (i2 - i1)); // => 1
System.out.println("2*1 = " + (i2 * i1)); // => 2
System.out.println("1/2 = " + (i1 / i2)); // => 0 (0.5 truncated down) // 取余
System.out.println("11%3 = "+(11 % 3)); // => 2 // 比较操作符
System.out.println("3 == 2? " + (3 == 2)); // => false
System.out.println("3 != 2? " + (3 != 2)); // => true
System.out.println("3 > 2? " + (3 > 2)); // => true
System.out.println("3 < 2? " + (3 < 2)); // => false
System.out.println("2 <= 2? " + (2 <= 2)); // => true
System.out.println("2 >= 2? " + (2 >= 2)); // => true // 位运算操作符
/*
~ 取反,求反码
<< 带符号左移
>> 带符号右移
>>> 无符号右移
& 和
^ 异或
| 相容或
*/ // 自增
int i = 0;
System.out.println("\n->Inc/Dec-rementation");
// ++ 和 -- 操作符使变量加或减1。放在变量前面或者后面的区别是整个表达
// 式的返回值。操作符在前面时,先加减,后取值。操作符在后面时,先取值
// 后加减。
System.out.println(i++); // 后自增 i = 1, 输出0
System.out.println(++i); // 前自增 i = 2, 输出2
System.out.println(i--); // 后自减 i = 1, 输出2
System.out.println(--i); // 前自减 i = 0, 输出0 ///////////////////////////////////////
// 控制结构
///////////////////////////////////////
System.out.println("\n->Control Structures"); // If语句和C的类似
int j = 10;
if (j == 10){
System.out.println("I get printed");
} else if (j > 10) {
System.out.println("I don't");
} else {
System.out.println("I also don't");
} // While循环
int fooWhile = 0;
while(fooWhile < 100)
{
//System.out.println(fooWhile);
//增加计数器
//遍历99次, fooWhile 0->99
fooWhile++;
}
System.out.println("fooWhile Value: " + fooWhile); // Do While循环
int fooDoWhile = 0;
do
{
//System.out.println(fooDoWhile);
//增加计数器
//遍历99次, fooDoWhile 0->99
fooDoWhile++;
}while(fooDoWhile < 100);
System.out.println("fooDoWhile Value: " + fooDoWhile); // For 循环
int fooFor;
//for 循环结构 => for(<起始语句>; <循环进行的条件>; <步长>)
for(fooFor=0; fooFor<10; fooFor++){
//System.out.println(fooFor);
//遍历 10 次, fooFor 0->9
}
System.out.println("fooFor Value: " + fooFor); // Switch Case 语句
// switch可以用来处理 byte, short, char, 和 int 数据类型
// 也可以用来处理枚举类型,字符串类,和原始数据类型的包装类:
// Character, Byte, Short, 和 Integer
int month = 3;
String monthString;
switch (month){
case 1:
monthString = "January";
break;
case 2:
monthString = "February";
break;
case 3:
monthString = "March";
break;
default:
monthString = "Some other month";
break;
}
System.out.println("Switch Case Result: " + monthString); ///////////////////////////////////////
// 类型转换
/////////////////////////////////////// // 数据转换 // 将字符串转换为整型
Integer.parseInt("123");//返回整数123 // 将整型转换为字符串
Integer.toString(123);//返回字符串"123" // 其他的数据也可以进行互相转换:
// Double
// Long
// String // 类型转换
// 你也可以对java对象进行类型转换, 但其中会牵扯到很多概念
// 在这里可以查看更详细的信息:
// http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html ///////////////////////////////////////
// 类与函数
/////////////////////////////////////// System.out.println("\n->Classes & Functions"); // (Bicycle类定义如下) // 用new来实例化一个类
Bicycle trek = new Bicycle(); // 调用对象的方法
trek.speedUp(3); // 需用getter和setter方法
trek.setCadence(100); // toString 可以把对象转换为字符串
System.out.println("trek info: " + trek.toString()); } // main 方法结束
} // LearnJava 类结束 // 你也可以把其他的非public类放入到.java文件中 // 类定义的语法:
// <public/private/protected> class <类名>{
// //成员变量, 构造函数, 函数
// //Java中函数被称作方法
// } class Bicycle { // Bicycle 类的成员变量和方法
public int cadence; // Public: 任意位置均可访问
private int speed; // Private: 只在同类中可以访问
protected int gear; // Protected: 可以在同类与子类中可以访问
String name; // default: 可以在包内中可以访问 // 构造函数是初始化一个对象的方式
// 以下是一个默认构造函数
public Bicycle() {
gear = 1;
cadence = 50;
speed = 5;
name = "Bontrager";
} // 以下是一个含有参数的构造函数
public Bicycle(int startCadence, int startSpeed, int startGear, String name) {
this.gear = startGear;
this.cadence = startCadence;
this.speed = startSpeed;
this.name = name;
} // 函数语法:
// <public/private/protected> <返回值类型> <函数名称>(<参数列表>) // Java类中经常会用getter和setter来对成员变量进行操作 // 方法声明的语法:
// <作用域> <返回值类型> <方法名>(<参数列表>)
public int getCadence() {
return cadence;
} // void返回值函数没有返回值
public void setCadence(int newValue) {
cadence = newValue;
} public void setGear(int newValue) {
gear = newValue;
} public void speedUp(int increment) {
speed += increment;
} public void slowDown(int decrement) {
speed -= decrement;
} public void setName(String newName) {
name = newName;
} public String getName() {
return name;
} //返回对象属性的方法
@Override
public String toString() {
return "gear: " + gear +
" cadence: " + cadence +
" speed: " + speed +
" name: " + name;
}
} // Bicycle 类结束 // PennyFarthing 是 Bicycle 的子类
class PennyFarthing extends Bicycle {
// (Penny Farthings 是前轮很大的 Bicycle, 并且没有齿轮) public PennyFarthing(int startCadence, int startSpeed){
// 通过super调用父类的构造函数
super(startCadence, startSpeed, 0, "PennyFarthing");
} // 你可以用@注释来表示需要重载的方法
// 了解更多的注释使用方法,可以访问下面的地址:
// http://docs.oracle.com/javase/tutorial/java/annotations/
@Override
public void setGear(int gear) {
gear = 0;
} }

java语法学习的更多相关文章

  1. Java 语法学习2

    Java基础语法二 类型转换 public class demo03 { public static void main(String[] args) { int i=128; byte a=(byt ...

  2. java语法学习问题总结

    No.1:EnumTest No.2:Addition 在此程序中,学习了将文本框调用出来,文本框输入的数据都是String类型,所以用于计算时需要先进行转型,然后计算. No.3:TestDoubl ...

  3. Android Java语法学习

    Activity中有一个名称叫onCreate的方法.该方法是在Activity创建时被系统调用,是一个Activity生命周期的开始. onCreate方法的参数savedInstanceState ...

  4. 2015/12/30 Java语法学习

    ①标识符包括:包名.类名.方法名.变量名.常量名.属性名 标识符书写规则:1,标识符由字母.数字._.$ 组成                      2,数字不能出现在开始位置          ...

  5. Java基础学习3

    Java语法学习3 基本运算符 关系运算符返回结果为布尔类型 %:取余 模运算 +.-.*./.% :二元运算符 两个变量间的运算 ++.-- 一元运算符 package Study; public ...

  6. 程序员带你学习安卓开发,十天快速入-对比C#学习java语法

    关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...

  7. [原创]java WEB学习笔记14:JSP的9 个隐含对象 及 JSP 的基本语法

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  8. Java基础语法学习

    Java基础语法学习 1. 注释 单行注释: //单行注释 多行注释: /*多行注释 多行注释 多行注释 多行注释 */ 2. 关键字与标识符 关键字: Java所有的组成部分都需要名字.类名.变量名 ...

  9. java web学习总结(十五) -------------------JSP基础语法

    任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语法,而且在JSP中,所有的JAVA语句都可以使用. 一.JSP模版元素 JSP页面中的HTML内容称之 ...

随机推荐

  1. SSM框架处理跨域问题

    什么是跨域 跨域是指从一个域名的网页去请求另一个域名的资源.比如从www.baidu.com 页面去请求 www.google.com 的资源.跨域的严格一点的定义是:只要 协议,域名,端口有任何一个 ...

  2. Web应用中解决问题的方案步骤?

    我们学一个东西,通常两个目的: - 为了解决现有的问题 - 为了解决将来可能会有的问题 所以,在学这些东西之前,先必须了解,它们是用来解决什么问题的. 在Web应用中,我们需要解决的问题可以归纳为三类 ...

  3. SSM框架整合以及书籍管理CRUD系统

    1.基本环境搭建 1.新建一Maven项目!ssmbuild , 添加web的支持 2.导入相关的pom依赖! <?xml version="1.0" encoding=&q ...

  4. Express4.x之API:express

    express()表达式 express的方法 express功能分析 一.express()表达式 创建Express应用程序.express()函数是express模块导出的顶级函数.(相当于HT ...

  5. 面试必问:分布式锁实现之zk(Zookeeper)

    点赞再看,养成习惯,微信搜索[三太子敖丙]关注这个互联网苟且偷生的工具人. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的 ...

  6. cb47a_c++_STL_算法_排列组合next_prev_permutation

    cb47a_c++_STL_算法_排列组合next_prev_permutation 使用前必须先排序.必须是 1,2,3或者3,2,1.否者结果不准确.如果, 1,2,4,6.这样数据不会准确nex ...

  7. Flutter学习笔记(35)--通知Notification

    如需转载,请注明出处:Flutter学习笔记(35)--通知Notification 通知的NotificationListener和我们之前写的事件的Listener一样,都是功能性的组件,而且也都 ...

  8. 【服务器】VMware Workstation Pro虚拟机搭建本地服务器CentOs7和宝塔面板(保姆式教程)

    内容繁多,请耐心跟着流程走,在过程中遇到问题请在下面留言. 前言 这几天一直在复习thinkphp5.1,学习环境是phpStudy8.1,但是遇到了文件有缓存的问题(thinkphp5.1.39,修 ...

  9. 一、Jenkins 安装(自动构建发布)

    war 包方式安装 官方下载地址:https://jenkins.io/download/ ,下载war包,并上传到服务器(案例中是把war包放在了 /usr/local/jenkins 里面) 运行 ...

  10. 客户端软件GUI开发技术漫谈:原生与跨平台解决方案分析

    原生开发应用开发 Microsoft阵营的 Winform WinForm是·Net开发平台中对Windows Form的一种称谓. 如果你想深入的美化UI,需要耗费很大的力气,对于目前主流的CSS样 ...