2020-09-25 宝申科技 》金库物联

本文深入探讨了前端HTML的基本结构、JSON数据格式及其组成部分,同时对比了GET与POST请求的区别,介绍了数组操作方法。此外,还详细解析了C#中的值类型与引用类型传递机制,string的特殊性及StringBuilder的使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

web

1、

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" /> 
<title></title>
</head>
<body><body/>
</html>

2、

其实JSON数据就是一段字符串而已,只不过有不同意义的分隔符将其分割开来而已,符号,里面有[] ,{}等符号,其中
1 []中括号代表的是一个数组;
2 {}大括号代表的是一个对象
3 双引号“”表示的是属性值
4 冒号:代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型。

3、

没有本质上的不同都是http协议

使用上有不同

  • GET在浏览器回退时是无害的,而POST会再次提交请求。
  • GET产生的URL地址当书签,而POST不可以。
  • GET请求会被浏览器主动cache,而POST不会,除非手动设置。
  • GET请求只能进行url编码,而POST支持多种编码方式。
  • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
  • GET请求在URL中传送的参数是有长度限制的,而POST么有。
  • 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
  • GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
  • GET参数通过URL传递,POST放在Request body中。
  • 语义不同
  • 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

    而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)

4、

  • 存储位置不同  cookie的数据信息存放在客户端浏览器上  session的数据信息存放在服务器上
  • 存储容量不同 单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie 对于session来说并没有上限,对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。
  • 存储方式不同 cookie中只能保管ASCII字符串,并需要通过编码方式存储 Unicode字符或者二进制数据。 session中能够存储任何类型的数据,包括且不限于string,integer,list,map等
  • 隐私策略不同  cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的。session存储在服务器上,对客户端是不透明,不存在敏感信息泄漏的风险
  • 有效期上不同 开发可以通过设置cookie的属性,达到使cookie长期有效的效果  session依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。

  • 服务器压力不同 cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie是很好的选择。session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。

  • 浏览器支持不同: cookie既能够设为本浏览器窗口以及子窗口内有效,也能够设为一切窗口内有效。session只能在本窗口以及子窗口内有效。

 5 、 var arr = [1,2,3,4,5,6,7,8,9]

        头部添加  unshift   arr.unshift(10)     尾部添加 push arr.push (10) 

        头部删除 shift    arr.shift()    尾部删除 pop    arr.pop (10) , 删除指定元素  delete  arr[1]

        splice   使用方法 通过 第三个以及后续参数   替换 来 插入 , 仅仅两个参数来删除

C#

1、

值类型传递和引用类型传递 可以细分为 

按照值类型传递就是平常的 值传递方式,

引用类型传递  需要在 形参和实参 前加 ref (传参前需要赋值) 或者 out (return 前需要赋值)

 

  • 值类型按值类型传递:复制一个副本
  • 值类型按引用类型传递 :传递参数地址
  • 引用类型按值类型传递:传递复制的参数地址地址
  • 引用类型按引用类型传递:传递参数地址

2、引用类型传递  需要在 形参和实参 前加 ref (传参前需要赋值) 或者 out (return 前需要赋值)

 

3、

因为 string 在C# 中是个特殊的 引用类型   具有不变性 一旦复制就不能修改 ,所以我们肉眼可见的 再次赋值其实是底层做了工作

每次 system.string 下的方法或者 赋值时 都是 再new了一个string 再把之前的 对象删除掉

大量拼接用 stringBuilder 

少量拼接可以 使用 +=

4、

virtual:虚方法 修饰方法时可以有方法体 可以子类中 用 overide 重写

sealed:封闭,不允许继承  也可以用于 override 前面 防止后续子类再次重写方法

override:重写父级中用  virtual 或者 abstract 修饰的 方法

abstract:抽象 修饰方法时不可以有方法体 可以子类中 用 overide 重写 , abstract 修饰方法时 所在类也必须由  abstract 修饰

 

5 用 关键字 static   

静态类中只能有静态成员 ,非静态类 中可以有普通成员也可以有静态成员

静态方法中只可以调用静态成员,且非静态方法中既可以调用非静态也可以调用静态

静态类不可以实例化

静态方法调用方法是 类名.方法名  普通类方法的调用方式 new 类名().方法名

静态类会占用资源尽量少用

数据库:

1

select * from tt left join t on t.xh = tt. xh 

2

select * from tt left join t on t.xh = tt. xh  where t.xh is not null

3
select  sum(score) total ,tt.xh,xm   from tt left join t on t.xh = tt. xh  where t.xh is not null
group by  tt.xh,xm  having  sum(score) >250

4

with ranks as(

			select  score,   '第'+ cast(  row_number() over( order by score desc ) as  nvarchar) ++ '名' as  rank from (

				select distinct top 5  score    from tt left join t on t.xh = tt. xh  
				where t.xh is not null 
				and t.kc= '英语'   order by  score desc

			) base

)
select  tt.xh,tt.xm,tt.sex,tt.age,t.kc,t.score,ranks.rank   ,

case  (select count(1)  from  t mt where   mt.score = t.score and mt. kc = t.kc )
when 1 then ''
else '并列'
end  type
from tt 
left join t on t.xh = tt. xh  
left join ranks on t.score = ranks.score
where t.xh is not null 
and t.kc= '英语'  and  ranks.score is not null  order by rank

效果:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值