Java目前毕生所需知识总汇

鄙人专科学识,才学书浅,大二段位,目前自诩青铜段位,应老师要求,每月持续更新一次博客。

所有观点仅我所认知,如果有任何写错的地方,望海涵,谨记!

简单说,学java必须明白一门语言需要编程思想,而编程思想不是靠道听途说,只有孜孜不倦的练习,加上汗水以及天赋,你才能称作为程序员吧!个人观点,谢谢!

题外话说完,正文开始:

大学入门第一次接触java,大家一定都是helloworld开始的,我也不例外。

不过,如此简单的程序就不需要书写了吧。

那么,接下来,介绍基本数据类型。

Java基本数据类型

整型      

byte(-128~127)                                                                                    内存(1字节)        Byte

short(-32768~32767)                                                                            内存(2字节)        Short

int(-21亿~21亿)                                                                                    内存 (4字节)       Integer

long(-9223372036854775805~9223372036854775807)                           内存(8字节)        Long

浮点型

float(-3.4028235E38~3.4028235E38)                                                      内存(8字节)        Float

double(-1.79769313486231570E-308~-1.79769313486231570E+308)      内存(8字节)        Double

字符型

char(0~65535)                                                                                      内存(2字节)        Character

布尔型

boolean(true/false)                                                                                                            Boolean

一、字符串String()

import java.util.Arrays;

public class Main {

	public static void main(String[] args) {
		String str="helloworld";//0123456789 java以0为开头索引
		char ch = str.charAt(0);//在某个字符的位置   -- h
		
		String str2="Helloworld";
		boolean b = str.equals(str2);//判断字符串是否相同  -- false 
		
		int w = str.indexOf("o");//获取指定字符串在目标字符串中首次出现的位置(索引),如果没有,返回-1  --4
		
		String str3="*";
		String concat = str.concat(str3);//字符串相加,会在需要串联字符最后的位置相加   --helloworld*
		
		//oldChar:原字符,newChar:新字符 (替换) 如果原字符没有,那么不替换  --hellojava
		String replace = str.replace("wold", "java");
		String replaceAll = str.replaceAll("helloworld", "java");//替换全部原字符,前提原字符包含所有被替换字符,否则无效--java
		
		String str4=" hello java       ";
		String trim = str4.trim();//仅去除前后空格 --hello java
		
		int compareTo = str.compareTo(str4);//字符串比较,会通过字符串大小依据字典顺序比较  --  72
		
		int lastIndexOf = str.lastIndexOf("d");//获取指定字符串在目标字符串中最后的第一次出现的位置,如果没有,返回-1  -- 9
		
		System.out.println((int) 'a');//强制转换成整数型,所代表的是ASCII码  -- 96
		
		String str5="hello";
		boolean contains = str.contains(str5);//判断是否包含另一个字符串   --ture
		
		boolean startsWith = str.startsWith("h");//判断是否以某个字符开头  --true
		boolean endsWith = str.endsWith("d");//判断是否以某个字符结束    --true
		
		//按照字符串分隔,转换成字符串数组,如果直接输出得到地址值[Ljava.lang.String;@7852e922  --@7852e922 哈希算法得到的值
		//地址值相当于邮箱形式,那么想要得到数据,必须遍历输出
		String str6="hikktn-age";
		String[] split = str6.split("-");
		//普通for循环遍历
		for(int i=0;i<split.length;i++) {
			System.out.println(split[i]);
		}
		//增强for循环遍历
		for (String s : split) {
			System.out.println(s);
		}
		//API遍历--顺序排序
		System.out.println(Arrays.toString(split));//[hikktn, age]
              System.out.println(Arrays.sort(split));//[age,hikktn]  倒序排序

String upperCase = str.toUpperCase();//转换成大写String lowerCase = str.toLowerCase();//转换成小写byte[] bytes = str.getBytes();//转换成Byte数组String substring = str.substring(0,4);//截取字串,第一个参数开始位置,第二个参数是结束位置,前闭后开}}

注意:String是唯一不可变的变量

数组的声明以及赋值

public class Main2 {

	public static void main(String[] args) {
		// 一维数组
		String[] strs = new String[] { "a", "b", "c" };
		int[] num = new int[2];
		num[0] = 1;
		num[1] = 2;
		// num[2]=3;ArrayIndexOutOfBoundsException 下标越界异常
		String[] str2 = { "a", "b", "c" };
		// 二维数组
		String[][] infos = { { "1", "23", "456" }, { "78", "9", "10" } };
		String infos2[][] = new String[2][3];// 2--行数 3--元素个数
		// 遍历打印表格
		for (int i = 0; i < infos.length; i++) {
			for (int j = 0; j < infos[i].length; j++) {
				System.out.print(infos[i][j] + "\t");
			}
		}
	}

}

常用数据类型转换

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Main3 {

	public static void main(String[] args) {
		// 基本类型转换成字符串
		int num1 = 20;
		String s = String.valueOf(num1);

		// 字符串转换成数组 String → String[]
		String str = "abc";
		String count = "";
		for (int i = 0; i < str.length(); i++) {
			if (i < str.length() - 1) {
				count += String.valueOf(str.charAt(i)).concat(",");
			} else {
				count += String.valueOf(str.charAt(i));
			}
		}
		String[] infos = count.split(",");

		// 字符串转换成char类型数组 String → char[]
		// char[] toCharArray()
		// 将此字符串转换为新的字符数组
		char[] strChar = str.toCharArray();

		// 字符串转换成byte数组 String → byte[]
		byte[] strByte = str.getBytes();

		//char类型转换int类型   char → int  -- ascii码 97
		char c='a';
		int a=(int) c;//强转
		
		// Char类型数组转换int类型数组  char[]  →  int[]
		char[] chs = { '3', '4', '5', '6' };
		int chsInt[] = new int[chs.length];// chsInt[4]
		for (int i = 0; i < chsInt.length; i++) {
			// static int parseInt(String s)
			// 将字符串参数解析为带符号的十进制整数
			chsInt[i] = Integer.parseInt(String.valueOf(chs[i]));
		}
		//char数组转换String类型  char[] → String
		char[] chs2= {'j','a','v','a'};
		String strChs21=String.valueOf(chs2);//方式一
		String strChs22=new String(chs2);//方式二
		String strChs23=String.copyValueOf(chs2);//方式三
		
		//String类型转换StringBuffer
		//public final class StringBuffer
		//线程安全,可变的字符序列   字符串缓冲区  效率低  特殊情况使用
		String str2="java";
		StringBuffer sb=new StringBuffer(str2);
		
		//StringBuilder类型转换String
		//public final class StringBuilder
		//线程不安全,不可变的字符序列  效率快  通常情况下推荐使用
		StringBuilder sb2=new StringBuilder("java");
		String str31=sb2.toString();//方式一
		String str32=String.valueOf(sb2);//方式二
		
		//数组类型转换int类型    String → int
		String num="123";//前提string内容必须为整数型,否则抛出NumberFormatException异常
		int intNum =Integer.parseInt(num);//方式一
		Integer intNum2 =Integer.valueOf(num);//方式二,类型为Integer,可调用Integer方法
		
		//字符串转换时间类型    String  →  Date
		String str4="2018-5-29 19:13:00";
		//public class SimpleDateFormat
		//SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期
		SimpleDateFormat sd =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		try {
			// Date parse(String text, ParsePosition pos)
			// 从字符串中解析文本以产生一个 Date
			Date date =sd.parse(str4);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		//Date → String
		Date date2 =new Date();
		// format(Date date, StringBuffer toAppendTo, FieldPosition pos)
		// 将给定的 Date成日期/时间字符串,并将结果追加到给定的 StringBuffer
		String str5=(new SimpleDateFormat("yyyy-MM-dd")).format(date2);
		
	}

}

Math目前常用的方法

Math.sqrt();//计算平方根
Math.random();//取得0<=x<=1的随机double类型数

Math.PI();//π

Java变量

 

public class Main4 {

	String name="hikktn";//成员变量/全局变量
	static final String GENDER ="BOY";//常量
	final int AGE=1;
	public static void main(String[] args) {
		String email ="qq.com";//局部变量
		int a;//单个变量定义
		int b=2;//单个变量初始化
		String Name = getName(GENDER);
		System.out.println(Name);
	}
	
	@SuppressWarnings("unused")
	private static String getName(String sex) {
		Main4 m=new Main4();
		return m.name;
	}
}

自增、自减运算符

int b=++a;      →   a =a+1;    b==a;    相当于如果a=0,只要这条代码运行,a在之前都会先加一后输出打印,得到结果为1

int b=a++;      →    b==a;       a=a+1;    相当于如果a=0,一旦这条代码运行,a都会先输出打印后,在进行下次运行时,才会加一,执行一次结果为0

逻辑运算符

&&(且)    ||  (或)   ! (非)

三目运算符

格式:条件  ? 条件为true执行 : 条件为false执行

public class Main5 {

	public static void main(String[] args) {
		int n=3,m=10;
		int maxNum= n>m ? n:m;//单层写法
		System.out.println(maxNum);//maxNum -- 10
		//与下方if... else 相同作用
		if(n>m) {
			System.out.println(n);
		}else {
			System.out.println(m);
		}
		int num=4;
		String str=num != 0 ? num % 2 == 0 ? "是偶数" : "是奇数" : "是0";//多层写法
		System.out.println(str);//是偶数
		//与下方if... if... else... else 相同作用
		if(num!=0) {
			if(num % 2 ==0) {
				System.out.println("是偶数");
			}else {
				System.out.println("是奇数");
			}
		}else {
			System.out.println("是0");
		}
	}

}

StringBuffer方法

append(s):将指定的字符串追缴到此字符序列

reverse():字符串反转形式取代

delete(int start,int end):移除此序列的子字符串(end)中的字符

Integer对象方法

Integer.parseInt():转换为整数型,int基本数据类型

Integer.valueOf():返回一个整数型对象,返回一个int值(保存的值)

封装方法的原则:高内聚,低耦合

--------20181228----------

本来还想补上以前学习得东西,可惜硬盘坏了,所有以前学习的资料,包括写过的代码练习全部丢失,实在抱歉了!并不能继续更新了。如果你的成绩并不理想,但只能考专科,同时你能来重庆,由衷告诉你上专科并且选择软件技术专业,真的没有自学能力和编程基础的小白,大学前两年在校一直按照老师的教学走的人,一定会找不到工作的。或者说工资一定是非常低,说说感触吧,我还算在大学里较班上所有人自觉认真一点的人,按时上课,上课认真,上课完成老师教导的任务,平时成绩好点,然后就平常的拿到第一,说实话,这个东西没有一点用,聪明的人,会玩编程,却玩不过其他科目的总和平时成绩。可笑!

如果你能来到重庆电信职业学院,一定要报蓝桥专业,至少你在这里它会领你真正java入门,而不是依靠学校老师那短短每周四五课时,来到这里你可能又一次回到高中时代,不过也有其他的感受。

没错,大家一搜蓝桥,绝对会怀疑我是骗人的,一个培训机构能教什么。但是它确实让我真正入门java,真正的可以独立写项目,写网站,如果你们看我的博客会发现我也是一步步走过来的,甚至连博客也是老师要求写的,以前可从没想过。

我并不是为了坑你们,只是突然有感触吧。明年三月份我们就作为第一届蓝桥班出去找工作了,相信能找到令人满意的工作吧。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hikktn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值